المعالج الدقيق WH V3

تحديد
- نموذج المعالج الدقيق: تشينغكه في 3
- إصدار: رقم V1.2
- مميزات ISA:
- وحدة معالجة الأنابيب العائمة
- التنبؤ بالفرع
- دعم المقاطعة
- حماية الذاكرة المادية (PMP) من HPE
- وضع استهلاك الطاقة المنخفض
- تصحيح أخطاء مجموعة التعليمات الموسعة
تعليمات استخدام المنتج
زيادةview من معالج QingKe V3
تتضمن سلسلة معالجات QingKe V3 الدقيقة الطرازات V3A وV3B وV3C. يتمتع كل طراز بميزات واختلافات محددة بناءً على تطبيقه.
مجموعة التعليمات
تتضمن مجموعة التعليمات RV32I 32 مجموعة من السجلات من x0 إلى x31. لا تدعم سلسلة V3 امتداد الفاصلة العائمة (F). يبلغ حجم كل سجل 32 بت.
مجموعة التسجيل
تتكون مجموعة السجلات RV32I من السجلات التالية.
- x0: مبرمجة 0
- x1: اعد العنوان
- x2: مؤشر المكدس
- x3: مؤشر عالمي
- x4: مؤشر الخيط
- x5-x7: السجلات المؤقتة
- x8: حفظ مؤشر السجل/الإطار
- x9: حفظ معلمات السجل/الوظيفة/قيم الإرجاع
- x10-x11: المعلمات وظيفة
- x12-x17: حفظ السجلات
- x18-x27: السجلات المؤقتة
- x28-x31: سجلات المتصلين/المستدعيين
وضع الامتياز
تتضمن بنية RISC-V القياسية ثلاثة أوضاع مميزة: وضع الآلة، ووضع المشرف، ووضع المستخدم. تدعم معالجات QingKe V3 من السلسلة وضع الآلة ووضع المشرف.
الأسئلة الشائعة
س: ما هي النماذج المختلفة في سلسلة المعالجات الدقيقة QingKe V3؟
A: تتضمن سلسلة QingKe V3 الطرازات V3A وV3B وV3C، ولكل منها ميزات واختلافات محددة موضحة بالتفصيل في دليل المستخدم.
س: كم عدد مجموعات السجلات المتوفرة في مجموعة تعليمات RV32I؟
A: توفر مجموعة تعليمات RV32I 32 مجموعة سجلات من x0 إلى x31.
س: ما هي الأوضاع المميزة التي يدعمها المعالج الدقيق QingKe V3؟
A: تدعم معالجات QingKe V3 الدقيقة وضع الآلة ووضع المشرف كجزء من بنية RISC-V.
زيادةview
إن معالجات QingKe V3 من سلسلة المعالجات الدقيقة هي معالجات دقيقة متعددة الأغراض ذات 32 بت تم تطويرها ذاتيًا استنادًا إلى بنية مجموعة التعليمات RISC-V القياسية. تتضمن هذه السلسلة V3A وV3B وV3C، حيث يدعم V3A امتداد مجموعة التعليمات القياسية RV32IMAC ويدعم V3B/C امتداد مجموعة التعليمات القياسية RV32IMCB وامتداد مجموعة التعليمات المخصصة XW. يدعم كلاهما الضرب أحادي الدورة وقسمة الأجهزة، بالإضافة إلى مكدس الضغط المادي (HPE)، والمقاطعة الخالية من الجدول (VTF)، وواجهات التصحيح المبسطة أحادية السلك وثنائية السلك، وتعليمات "WFE"، وغيرها من الميزات الخاصة. بالإضافة إلى ذلك، فهي تدعم أيضًا Hardware Prologue/Epilogue (HPE)، وVector Table Free (VTF)، وواجهة التصحيح المبسطة أحادية السلك ونصف السلك، ودعم تعليمات "WFE".
سمات
| سمات | وصف |
| عيسى | RV32IM[أ]ج[ب] |
| خط الأنابيب | 3 |
| وحدة النقطة العائمة | غير مدعوم |
| التنبؤ بالفرع | التنبؤ بالفرع الثابت |
| مقاطعة | يدعم ما مجموعه 256 مقاطعة بما في ذلك الاستثناءات، ويدعم VTF |
| إتش بي إي | دعم مستويين من HPE |
| حماية الذاكرة المادية (PMP) | مدعوم |
| وضع استهلاك الطاقة المنخفض | يدعم وضعي النوم والنوم العميق، ويدعم طرق النوم WFI وWFE |
| مجموعة التعليمات الموسعة | مدعوم |
| تصحيح الأخطاء | 1/2 سلك SDI، تصحيح أخطاء RISC-V القياسي |
زيادةview
تتضمن سلسلة معالجات QingKe V3 كل من V3A وV3B وV3C، وهناك بعض الاختلافات بين السلسلة وفقًا للتطبيق، ويتم تفصيل الاختلافات المحددة في الجدول 1-1.
الجدول 1-1 انتهىview من معالج QingKe V3
| ميزة نموذج | عيسى | عدد مستويات HPE | المقاطعات التعشيش عدد من المستويات | صندوق التنمية الاجتماعية عدد القنوات | خط الأنابيب | متجه وضع الجدول | التعليم الموسع (اكس دبليو) | عدد مناطق حماية الذاكرة |
| V3A | RV32IMAC | 2 | 2 | 4 | 3 | تعليمات | × | × |
| V3B | RV32IMCB | 2 | 2 | 4 | 3 | العنوان/التعليمات | √ | × |
| في3 سي | RV32IMCB | 2 | 2 | 4 | 3 | العنوان/التعليمات | √ | 4 |
ملحوظة: يستخدم تبديل مهام نظام التشغيل بشكل عام الدفع المكدس، والذي لا يقتصر على عدد المستويات
مجموعة التعليمات
- تتبع معالجات QingKe V3 من السلسلة بنية مجموعة التعليمات RISC-V القياسية (ISA). يمكن العثور على وثائق مفصلة للمعيار في "دليل مجموعة التعليمات RISC-V، المجلد الأول: بنية مجموعة التعليمات RISC-V على مستوى المستخدم، إصدار الوثيقة 2.2" على موقع RISC-V International webتتميز مجموعة تعليمات RISC-V ببنية بسيطة وتدعم التصميم المعياري، مما يسمح بمجموعات مرنة بناءً على احتياجات مختلفة، وتدعم سلسلة V3 ملحقات مجموعة التعليمات التالية.
- عربة سكن متنقلة 32: هندسة 32 بت، عرض بت السجل للأغراض العامة 32 بت
- I: دعم عملية التشكيل، مع 32 سجل تشكيل
- M: دعم تشكيل تعليمات الضرب والقسمة
- A: دعم الأوامر الذرية
- C: دعم تعليمات الضغط 16 بت
- B: دعم تعليمات معالجة البتات
- إكس دبليو: تعليمات ضغط 16 بت لعمليات البايتات ونصف الكلمات الممتدة ذاتيًا
ملحوظة:
- قد تختلف المجموعة الفرعية من الإرشادات التي تدعمها النماذج المختلفة، يرجى الرجوع إلى الجدول 1-1 للحصول على التفاصيل؛
- من أجل تحسين كثافة الكود بشكل أكبر، قم بتوسيع مجموعة XW الفرعية، وأضف تعليمات الضغط التالية c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop، والتي يجب أن يعتمد استخدامها على مُجمِّع MRS أو سلسلة الأدوات التي يوفرها؛
- يدعم الإصدار 3B استخراج تعليمة كلمة (32 بت) من كلمة مزدوجة (64 بت) واستخراج تعليمة كلمة (32 بت) من نتيجة الضرب (64 بت). يمكن لطريقة الاستخدام المحددة الرجوع إلى وظيفة المكتبة والتعاون مع مُجمِّع MRS أو سلسلة الأدوات التي يوفرها؛
- يدعم الإصداران V3B/C تعليمات نسخ الذاكرة. للاستخدام المحدد، يرجى الرجوع إلى وظيفة المكتبة والتعاون مع مُجمِّع MRS أو سلسلة أدواته.
مجموعة التسجيل
يحتوي RV32I على 32 مجموعة من السجلات من x0 إلى x31. لا تدعم سلسلة V3 امتداد "F"، أي أنه لا توجد مجموعة سجلات ذات فاصلة عائمة. في RV32، يتكون كل سجل من 32 بت. يسرد الجدول 1-2 أدناه سجلات RV32I وأوصافها.
الجدول 1-2 سجلات RISC-V
| يسجل | اسم ABI | وصف | المُخزّن |
| x0 | صفر | مبرمجة 0 | - |
| x1 | ra | اعد العنوان | المتصل |
| x2 | sp | مؤشر المكدس | كالي |
| x3 | GP | مؤشر عالمي | - |
| x4 | tp | مؤشر الخيط | - |
| x5-7 | ت0-2 | سجل مؤقت | المتصل |
| x8 | س0/فب | حفظ مؤشر السجل/الإطار | كالي |
| x9 | s1 | حفظ السجل | كالي |
| x10-11 | أ0-1 | معلمات الوظيفة/قيم الإرجاع | المتصل |
| x12-17 | أ2-7 | المعلمات وظيفة | المتصل |
| x18-27 | أ2-11 | حفظ السجل | كالي |
| X28-31 | ت3-6 | سجل مؤقت | المتصل |
تعني سمة المتصل في الجدول أعلاه أن الإجراء المستدعى لا يحفظ قيمة السجل، وتعني سمة المستدعى أن الإجراء المستدعى يحفظ السجل.
وضع الامتياز
- تتضمن بنية RISC-V القياسية ثلاثة أوضاع مميزة: وضع الجهاز، ووضع المشرف، ووضع المستخدم، كما هو موضح في الجدول 1-3 أدناه.
- يعد وضع الآلة إلزاميًا، أما الأوضاع الأخرى فهي اختيارية. للحصول على التفاصيل، يمكنك الرجوع إلى دليل مجموعة تعليمات RISC-V المجلد الثاني: الهندسة المعمارية المميزة، والذي يمكن تنزيله مجانًا من RISC-V International webموقع.
الجدول 1-3 وضع امتيازات بنية RISC-V
| شفرة | اسم | الاختصارات |
| 0ب00 | وضع المستخدم | U |
| 0ب01 | نموذج المشرف | S |
| 0ب10 | محجوز | محجوز |
| 0ب11 | وضع الآلة | M |
- تدعم معالجات QingKe V3 السلسلة اثنين من هذه الأوضاع المميزة.
وضع الآلة
- يتمتع وضع الماكينة بأعلى سلطة، حيث يمكن للبرنامج في هذا الوضع الوصول إلى كافة سجلات التحكم والحالة (CSR)، ولكن يمكنه أيضًا الوصول إلى جميع مناطق العناوين المادية.
- الوضع الافتراضي لتشغيل الجهاز هو وضع الجهاز، عندما يعود تنفيذ mret (تعليمات العودة إلى وضع الجهاز)، وفقًا لحالة سجل CSR (سجل حالة وضع الجهاز) في بت MPP، إذا كان MPP = 0b00، ثم الخروج من وضع الجهاز إلى وضع المستخدم، MPP = 0b11، ثم الاستمرار في الاحتفاظ بوضع الجهاز.
وضع المستخدم
- يتمتع وضع المستخدم بأقل قدر من الامتيازات، ولا يمكن الوصول إلا إلى سجلات CSR محدودة في هذا الوضع. عند حدوث استثناء أو انقطاع، ينتقل المعالج الدقيق من وضع المستخدم إلى وضع الجهاز للتعامل مع الاستثناءات والمقاطعات.
سجل المسؤولية الاجتماعية للشركات
يتم تعريف سلسلة من سجلات CSR في بنية RISC-V للتحكم في حالة تشغيل المعالج الدقيق وتسجيلها. يمكن توسيع سجلات CSR هذه بواسطة 4096 سجلاً باستخدام مساحة ترميز عنوان داخلية مخصصة مكونة من 12 بت. واستخدام البتات العالية CSR[11:10] لتحديد إذن القراءة/الكتابة لهذا السجل، و0b00، و0b01، و0b10 للقراءة/الكتابة المسموح بها و0b11 للقراءة فقط. استخدم البتات CSR[9:8] لتحديد أدنى مستوى امتياز يمكنه الوصول إلى هذا السجل، وتتوافق القيمة مع وضع الامتياز المحدد في الجدول 1-3. تم تفصيل سجلات CSR المطبقة في المعالج الدقيق QingKe V3 في الفصل 8.
استثناء
آلية الاستثناء، وهي آلية لاعتراض ومعالجة "أحداث التشغيل غير العادية". تم تجهيز معالجات QingKe V3 بنظام استجابة للاستثناءات يمكنه التعامل مع ما يصل إلى 256 استثناء، بما في ذلك المقاطعات. عند حدوث استثناء أو انقطاع، يمكن للمعالج الدقيق الاستجابة بسرعة ومعالجة أحداث الاستثناء والانقطاع.
أنواع الاستثناءات
إن سلوك الأجهزة للمعالج الدقيق هو نفسه سواء حدث استثناء أو انقطاع. يقوم المعالج الدقيق بتعليق البرنامج الحالي، ثم ينتقل إلى معالج الاستثناء أو المقاطعة، ثم يعود إلى البرنامج المعلق سابقًا عند اكتمال المعالجة. وبصورة عامة، فإن المقاطعات هي أيضًا جزء من الاستثناءات. يمكن تحديد ما إذا كان الحدث الحالي هو انقطاع أو استثناء على وجه التحديد viewيتم تسجيل السبب من خلال سجل سبب استثناء وضع الآلة. mcause[31] هو حقل المقاطعة، والذي يستخدم للإشارة إلى ما إذا كان سبب الاستثناء هو مقاطعة أم استثناء. mcause[31]=1 يعني مقاطعة، mcause[31]=0 يعني استثناء. mcause[30:0] هو رمز الاستثناء، والذي يستخدم للإشارة إلى السبب المحدد للاستثناء أو رقم المقاطعة، كما هو موضح في الجدول التالي.
الجدول 2-1 أكواد استثناء المعالج الدقيق V3
| مقاطعة | استثناء الرموز | متزامن / غير متزامن | سبب الاستثناء |
| 1 | 0-1 | - | محجوز |
| 1 | 2 | غير متزامن دقيق | مقاطعات NMI |
| 1 | 3-11 | - | محجوز |
| 1 | 12 | غير متزامن دقيق | مقاطعة SysTick |
| 1 | 13 | - | محجوز |
| 1 | 14 | متزامن | مقاطعات البرامج |
| 1 | 15 | - | محجوز |
| 1 | 16-255 | غير متزامن دقيق | المقاطعة الخارجية 16-255 |
| 0 | 0 | متزامن | عدم محاذاة عنوان التعليمات |
| 0 | 1 | متزامن | خطأ في الوصول إلى أمر الجلب |
| 0 | 2 | متزامن | تعليمات غير قانونية |
| 0 | 3 | متزامن | نقاط |
| 0 | 4 | متزامن | خطأ في محاذاة عنوان الوصول إلى تعليمات التحميل |
| 0 | 5 | غير متزامنة غير دقيقة | خطأ في الوصول إلى أمر التحميل |
| 0 | 6 | متزامن | عدم محاذاة عنوان الوصول إلى تعليمات Store/AMO |
| 0 | 7 | غير متزامنة غير دقيقة | خطأ في الوصول إلى أمر Store/AMO |
| 0 | 8 | متزامن | استدعاء البيئة في وضع المستخدم |
| 0 | 11 | متزامن | استدعاء البيئة في وضع الجهاز |
- "متزامن" في الجدول يعني أنه يمكن تحديد موقع التعليمات بالضبط حيث يتم تنفيذها، مثل تعليمات التوقف أو الاستدعاء، وكل تنفيذ لتلك التعليمات سيؤدي إلى حدوث استثناء. "غير متزامن" يعني أنه من غير الممكن تحديد موقع التعليمات، وقد تكون قيمة PC للتعليمات مختلفة في كل مرة يحدث فيها استثناء. "غير متزامن دقيق" يعني أنه يمكن تحديد موقع الاستثناء بالضبط عند حدود التعليمات، أي الحالة بعد تنفيذ التعليمات، مثل المقاطعة الخارجية. "غير متزامن غير دقيق" يعني أنه لا يمكن تحديد حدود التعليمات بدقة، وربما الحالة بعد مقاطعة التعليمات في منتصف التنفيذ، مثل خطأ الوصول إلى الذاكرة.
- إن الوصول إلى الذاكرة يستغرق وقتا، وعادة لا ينتظر المعالج الدقيق حتى نهاية الوصول عند الوصول إلى الذاكرة بل يستمر في تنفيذ التعليمات، وعندما يحدث استثناء خطأ الوصول مرة أخرى، يكون المعالج الدقيق قد نفذ بالفعل التعليمات اللاحقة، ولا يمكن تحديد موقعه بدقة.
إدخال استثناء
عندما يكون البرنامج في عملية تشغيل عادية، إذا حدث لأي سبب من الأسباب استثناء أو مقاطعة، يمكن تلخيص سلوك الأجهزة للمعالج الدقيق في هذه المرحلة على النحو التالي.
- تعليق تدفق البرنامج الحالي والانتقال إلى تنفيذ وظائف معالجة الاستثناء أو المقاطعة. يتم تحديد عنوان قاعدة الإدخال ووضع العنونة لوظيفة الاستثناء أو المقاطعة بواسطة سجل عنوان قاعدة إدخال الاستثناء mtvec. يحدد mtvec[31:2] العنوان الأساسي لوظيفة الاستثناء أو المقاطعة. يحدد mtvec[1:0] وضع العنونة لوظيفة المعالج. عندما يكون mtvec[1:0]=0، تستخدم جميع الاستثناءات والمقاطعات إدخالاً موحدًا، أي عندما يحدث استثناء أو مقاطعة، فإنه يتحول إلى يحدد mtvec[31:2] العنوان الأساسي للتنفيذ. عندما يكون mtvec[1:0]=1، تستخدم الاستثناءات والمقاطعات وضع جدول المتجهات، أي أن كل استثناء ومقاطعة مرقم، ويتم إزاحة العنوان وفقًا لرقم المقاطعة * 4، وعندما يحدث استثناء أو مقاطعة، يتم تحويله إلى العنوان الأساسي المحدد بواسطة mtvec[31:2] + رقم المقاطعة * 4 التنفيذ. يحتوي جدول متجه المقاطعة على تعليمات للانتقال إلى وظيفة معالجة المقاطعة، أو يمكن أن تكون تعليمات أخرى.
- تحديث سجل المسؤولية الاجتماعية للشركات
- عند إدخال استثناء أو مقاطعة، يقوم المعالج الدقيق تلقائيًا بتحديث سجلات CSR ذات الصلة، بما في ذلك سجل سبب استثناء وضع الآلة mcause، وسجل مؤشر استثناء وضع الآلة mepc، وسجل قيمة استثناء وضع الآلة metal، وسجل حالة وضع الآلة status.
تحديث السبب
كما ذكرنا سابقا، بعد إدخال استثناء أو مقاطعة، فإن قيمتها تعكس نوع الاستثناء الحالي أو رقم المقاطعة، ويمكن للبرنامج قراءة قيمة هذا السجل للتحقق من سبب الاستثناء أو تحديد مصدر المقاطعة، كما هو مفصل في الجدول 2-1.
تحديث mepc
- يتم تخزين التعريف القياسي لعنوان العودة للمعالج الدقيق بعد الخروج من استثناء أو مقاطعة في mepc.
- لذلك، عندما يحدث استثناء أو مقاطعة، يقوم الجهاز تلقائيًا بتحديث قيمة mepc إلى قيمة تعليمات PC الحالية عند مواجهة الاستثناء، أو قيمة تعليمات PC التي تم تنفيذها مسبقًا قبل المقاطعة.
- بعد معالجة الاستثناء أو المقاطعة، يستخدم المعالج الدقيق قيمته المحفوظة كعنوان إرجاع للعودة إلى موقع المقاطعة لمواصلة التنفيذ.
- ومع ذلك، تجدر الإشارة إلى أنه.
- MEPC عبارة عن سجل قابل للقراءة والكتابة، ويمكن للبرنامج أيضًا تعديل القيمة لتعديل موقع مؤشر الكمبيوتر الشخصي الذي يعمل بعد العودة.
- عندما يحدث انقطاع، أي عندما يسجل سبب الاستثناء mcause[31]=1، يتم تحديث قيمة الخرائط إلى قيمة الكمبيوتر الشخصي للتعليمات غير المنفذة التالية في وقت المقاطعة.
- عندما يحدث استثناء، يتم تحديث قيمة الخرائط إلى قيمة تعليمة PC للاستثناء الحالي عندما يتسبب الاستثناء في تسجيل mcause[31]=0. لذا في هذا الوقت عندما يعود الاستثناء، إذا عدنا مباشرة باستخدام قيمة mepc، نستمر في تنفيذ التعليمة التي ولدت الاستثناء من قبل، وفي هذا الوقت، سنستمر في إدخال الاستثناء. عادةً، بعد معالجة الاستثناء، يمكننا تعديل قيمة mepc إلى قيمة التعليمة التالية غير المنفذة ثم العودة. على سبيل المثالampعلى سبيل المثال، إذا تسببنا في استثناء بسبب call/break، بعد معالجة الاستثناء، نظرًا لأن recall/break (c.ebreak هو 2 بايت) عبارة عن تعليمة مكونة من 4 بايتات، نحتاج فقط إلى البرنامج لتعديل قيمة mepc إلى mepc+4 (c.ebreak هو mepc+2) ثم العودة.
تحديث mtval
عند إدخال استثناءات ومقاطعات، سيقوم الجهاز تلقائيًا بتحديث قيمة mtval، وهي القيمة التي تسببت في الاستثناء. القيمة عادةً هي
- إذا حدث استثناء بسبب وصول إلى الذاكرة، فسوف يقوم الجهاز بتخزين عنوان وصول الذاكرة في وقت الاستثناء في mtval.
- إذا كان سبب الاستثناء هو تعليمة غير قانونية، فسوف يقوم الجهاز بتخزين كود التعليمات في mtval.
- إذا كان سبب الاستثناء هو نقطة توقف الأجهزة، فسوف يقوم الجهاز بتخزين قيمة الكمبيوتر الشخصي عند نقطة التوقف في mtval.
- بالنسبة للاستثناءات الأخرى، يقوم الجهاز بتعيين قيمة mtval إلى 0، مثل break، الاستثناء الناتج عن تعليمات الاستدعاء.
- عند الدخول إلى المقاطعة، يقوم الجهاز بتعيين قيمة mtval إلى 0.
تحديث الحالة
عند إدخال الاستثناءات والمقاطعات، يقوم الجهاز بتحديث بتات معينة في mstatus.
- يتم تحديث MPIE إلى قيمة MIE قبل إدخال الاستثناء أو المقاطعة، ويتم استخدام MPIE لاستعادة MIE بعد انتهاء الاستثناء أو المقاطعة.
- يتم تحديث MPP إلى الوضع المميز قبل إدخال الاستثناءات والمقاطعات، وبعد انتهاء الاستثناءات والمقاطعات، يتم استخدام MPP لاستعادة الوضع المميز السابق.
- يدعم المعالج الدقيق QingKe V3 تعشيش المقاطعات في وضع الجهاز، ولن يتم مسح MIE بعد إدخال الاستثناءات والمقاطعات.
تحديث وضع امتياز المعالج الدقيق
- عند حدوث استثناءات أو مقاطعات، يتم تحديث الوضع المميز للمعالج الدقيق إلى وضع الجهاز.
وظائف معالجة الاستثناءات
- عند إدخال استثناء أو مقاطعة، يقوم المعالج الدقيق بتنفيذ البرنامج من العنوان والوضع المحددين بواسطة سجل mtvec. عند استخدام الإدخال الموحد، يأخذ المعالج الدقيق تعليمة قفزة من العنوان الأساسي المحدد بواسطة mtvec[31:2] بناءً على قيمة mtvec[1]، أو يحصل على عنوان إدخال وظيفة معالجة الاستثناء والمقاطعة ويذهب لتنفيذه بدلاً من ذلك. في هذا الوقت، يمكن لوظيفة معالجة الاستثناء والمقاطعة تحديد ما إذا كان السبب استثناءً أم مقاطعة بناءً على قيمة mcause[31]، ويمكن الحكم على نوع وسبب الاستثناء أو المقاطعة المقابلة من خلال رمز الاستثناء ومعالجتها وفقًا لذلك.
- عند استخدام عنوان القاعدة + رقم المقاطعة *4 للإزاحة، يقفز الجهاز تلقائيًا إلى جدول المتجهات للحصول على عنوان إدخال وظيفة الاستثناء أو المقاطعة استنادًا إلى رقم المقاطعة ويقفز لتنفيذها.
خروج الاستثناء
- بعد اكتمال معالجة الاستثناءات أو المقاطعات، من الضروري الخروج من برنامج الخدمة. بعد إدخال الاستثناءات والمقاطعات، يدخل المعالج الدقيق إلى وضع الجهاز من وضع المستخدم، كما تكتمل معالجة الاستثناءات والمقاطعات في وضع الجهاز. عندما يكون من الضروري الخروج من الاستثناءات والمقاطعات، من الضروري استخدام تعليمة mret للعودة. في هذا الوقت، سيقوم جهاز المعالج الدقيق تلقائيًا بإجراء العمليات التالية.
- يتم استعادة مؤشر الكمبيوتر الشخصي إلى قيمة سجل CSR mepc، أي أن التنفيذ يبدأ عند عنوان التعليمات المحفوظ بواسطة mepc. من الضروري الانتباه إلى عملية الإزاحة الخاصة بـ mepc بعد اكتمال معالجة الاستثناء.
- تحديث حالة سجل CSR، ويتم استعادة MIE إلى MPIE، ويتم استخدام MPP لاستعادة الوضع المميز للمعالج الدقيق السابق.
- يمكن وصف عملية الاستجابة للاستثناء بالكامل بالشكل 2-1 التالي.

PFIC والتحكم في المقاطعة
- تم تصميم المعالج الدقيق QingKe V3 باستخدام وحدة التحكم في المقاطعة السريعة القابلة للبرمجة (PFIC) التي يمكنها إدارة ما يصل إلى 256 مقاطعة بما في ذلك الاستثناءات.
- أول 16 منها ثابتة كمقاطعات داخلية للمعالج الدقيق، والباقي عبارة عن مقاطعات خارجية، أي أن الحد الأقصى لعدد المقاطعات الخارجية يمكن أن يصل إلى 240. وتتلخص ميزاتها الرئيسية فيما يلي.
- 240 مقاطعة خارجية، كل طلب مقاطعة لديه بتات تحكم مستقلة في المشغل والقناع، مع بتات حالة مخصصة
- تدعم أولوية المقاطعة القابلة للبرمجة مستويين من التعشيش
- مقاطعة سريعة خاصة للداخل والخارج من الآلية، والتكديس الآلي للأجهزة، والاسترداد، وعمق HPE الأقصى بمستويين
- آلية استجابة المقاطعة خالية من جدول المتجهات (VTF)، وصول مباشر قابل للبرمجة بقناتين إلى عناوين متجه المقاطعة
- ملحوظة: يختلف أقصى عمق للتعشيش وعمق HPE المدعوم من وحدات التحكم في المقاطعة باختلاف طرازات المعالجات الدقيقة، والتي يمكن العثور عليها في الجدول 1-1.
- يظهر جدول متجه المقاطعات والاستثناءات في الجدول 3-1 أدناه.
الجدول 3-1 جدول متجهات الاستثناءات والمقاطعات
| رقم | أولوية | يكتب | اسم | وصف |
| 0 | - | - | - | - |
| 1 | - | - | - | - |
| 2 | -5 | مُثَبَّت | ني مي | مقاطعة غير قابلة للإخفاء |
| 3 | -4 | مُثَبَّت | إكس سي | استثناء المقاطعة |
| 4 | - | - | - | - |
| 5 | -3 | مُثَبَّت | ايكول-M | مقاطعة استدعاء وضع الآلة |
| 6-7 | - | - | - | - |
| 8 | -2 | مُثَبَّت | ايكول-يو | مقاطعة استدعاء وضع المستخدم |
| 9 | -1 | مُثَبَّت | نقطة فاصلة | مقاطعة استدعاء نقطة التوقف |
| 10-11 | - | - | - | - |
| 12 | 0 | قابلة للبرمجة | سيستيك | مقاطعة مؤقت النظام |
| 13 | - | - | - | - |
| 14 | 1 | قابلة للبرمجة | سويسري | مقاطعة البرمجيات |
| 15 | - | - | - | - |
| 16-255 | 2-241 | قابلة للبرمجة | المقاطعة الخارجية | المقاطعة الخارجية 16-255 |
ملحوظة: ECALL-M، وECALL-U، وBREAKPOINT هي أنواع مختلفة من استثناء EXC، وهي مستقلة في V3B/C لسهولة الاستخدام، وعناوين الإدخال الثلاثة المذكورة أعلاه مشتركة مع EXC في V3A.
مجموعة سجل PFIC
الجدول 3-2 سجلات PFIC
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
| PFIC_ISRx | 0xE000E000
-0xE000E01C |
RO | سجل حالة تمكين المقاطعة x | 0×00000000 |
| PFIC_IPRx | 0xE000E020
-0xE000E03C |
RO | مقاطعة سجل حالة الانتظار x | 0×00000000 |
| PFIC_ITHRESDR | 0xE000E040 | RW | سجل تكوين عتبة أولوية المقاطعة | 0×00000000 |
| PFIC_VTFBADDRR | 0xE000E044 | RW | سجل عنوان قاعدة VTF
ملحوظة: صالح فقط لإصدار V3A |
0×00000000 |
| PFIC_CFGR | 0xE000E048 | RW | سجل تكوين المقاطعة
ملحوظة: صالح فقط لإصدار V3A |
0×00000000 |
| PFIC_GISR | 0xE000E04C | RO | مقاطعة سجل الحالة العالمية | 0×00000002 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
سجل تكوين معرف مقاطعة VTF
ملحوظة: صالح فقط لإصدار V3B/C. |
0×00000000 |
| PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | سجل عنوان الإزاحة VTF x | 0xXXXXXXXXX |
| PFIC_IENRx | 0xE000E100
-0xE000E11C |
WO | سجل إعداد تمكين المقاطعة x | 0×00000000 |
| PFIC_IRERx | 0xE000E180
-0xE000E19C |
WO | تمكين مقاطعة مسح السجل x | 0×00000000 |
| PFIC_IPSRx | 0xE000E200
-0xE000E21C |
WO | مقاطعة سجل الإعداد المعلق x | 0×00000000 |
| PFIC_IPRRx | 0xE000E280
-0xE000E29C |
WO | مقاطعة انتظار مسح السجل x | 0×00000000 |
| PFIC_IACTRx | 0xE000E300
-0xE000E31C |
RO | سجل حالة تنشيط المقاطعة x | 0×00000000 |
| PFIC_IPRIORx | 0xE000E400
-0xE000E43C |
RW | سجل تكوين أولوية المقاطعة | 0×00000000 |
| PFIC_SCTLR | 0xE000ED10 | RW | سجل التحكم بالنظام | 0×00000000 |
ملحوظة:
- يتم تمكين NMI، وEXC، وECALL-M، وECALL-U، وBREAKPOINT دائمًا بشكل افتراضي.
- ECALL-M، وECALL-U، وBREAKPOINT هي حالة من EXC.
- يدعم NMI وEXC وECALL-M وECALL-U وBREAKPOINT عملية المسح المعلق للمقاطعة والإعداد، ولكن لا يدعم عملية المسح والإعداد التي تمكن المقاطعة.
يتم وصف كل سجل على النحو التالي:
حالة تمكين المقاطعة وسجلات حالة المقاطعة المعلقة (PFIC_ISR<0-7>/PFIC_IPR<0-7>)
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
| PFIC_ISR0 | 0xE000E000 | RO | تمكين المقاطعة 0-31 لسجل الحالة، بإجمالي 32 بت حالة [n]، مما يشير إلى أن المقاطعة #n تمكن الحالة
ملاحظة: تم تمكين NMI وEXC افتراضيا |
للإصدار V3A: 0x0000000C
للإصدار 3B/C: 0x0000032C |
| PFIC_ISR1 | 0xE000E004 | RO | مقاطعة 32-63 سجل حالة التمكين، بإجمالي 32 بت حالة | 0×00000000 |
| … | … | … | … | … |
| PFIC_ISR7 | 0xE000E01C | RO | سجل حالة تمكين المقاطعة 224-255، بإجمالي 32 بت حالة | 0×00000000 |
| PFIC_IPR0 | 0xE000E020 | RO | مقاطعة 0-31 حالة معلقة | 0×00000000 |
| سجل، بإجمالي 32 بت حالة [n]، مما يشير إلى حالة الانتظار للمقاطعة #n | ||||
| PFIC_IPR1 | 0xE000E024 | RO | مقاطعة 32-63 سجل حالة معلقة، 32 بت حالة في المجموع | 0×00000000 |
| … | … | … | … | … |
| PFIC_IPR7 | 0xE000E03C | RO | مقاطعة سجل الحالة المعلقة 244-255، 32 بت حالة في المجموع | 0×00000000 |
يتم استخدام مجموعتين من السجلات لتمكين وإلغاء تمكين المقاطعات المقابلة.
إعداد تمكين المقاطعة ومسح السجلات (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
| PFIC_IENR0 | 0xE000E100 | WO | يتيح المقاطعة 0-31 تسجيل الإعداد، بإجمالي 32 بت إعداد [n]، لتمكين المقاطعة #n من الإعداد
ملحوظة: ني مي و إكس سي نكون مُمَكَّن افتراضيا |
0×00000000 |
| PFIC_IENR1 | 0xE000E104 | WO | قم بمقاطعة 32-63 لتمكين سجل الإعداد، بإجمالي 32 بت إعداد | 0×00000000 |
| … | … | … | … | … |
| PFIC_IENR7 | 0xE000E11C | WO | إعداد تمكين المقاطعة 224-255
سجل، ما مجموعه 32 بت إعداد |
0×00000000 |
| - | - | - | - | - |
| PFIC_IRER0 | 0xE000E180 | WO | المقاطعات 0-31 تمكين مسح السجل، بإجمالي 32 بت مسح [n]، للمقاطعة #n تمكين مسح ملاحظة: لا يمكن استخدام NMI وEXC تم تشغيله |
0×00000000 |
| PFIC_IRER1 | 0xE000E184 | WO | يتيح المقاطعة 32-63 مسح السجل، بإجمالي 32 بت مسح | 0×00000000 |
| … | … | … | … | … |
| PFIC_IRER7 | 0xE000E19C | WO | يتيح المقاطعة 244-255 مسح السجل، بإجمالي 32 بت مسح | 0×00000000 |
يتم استخدام مجموعتين من السجلات لتمكين وإلغاء تمكين المقاطعات المقابلة.
مقاطعة الإعداد المعلق ومسح السجلات (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
|
PFIC_IPSR0 |
0xE000E200 |
WO |
مقاطعة 0-31 في انتظار سجل الإعداد، 32
بتات الإعداد [n]، للمقاطعة #n في انتظار الإعداد |
0×00000000 |
| PFIC_IPSR1 | 0xE000E204 | WO | مقاطعة 32-63 في انتظار سجل الإعداد،
إجمالي 32 بت إعداد |
0×00000000 |
| … | … | … | … | … |
| PFIC_IPSR7 | 0xE000E21C | WO | مقاطعة 224-255 في انتظار الإعداد
سجل، 32 بت إعداد في المجموع |
0×00000000 |
| - | - | - | - | - |
|
PFIC_IPRR0 |
0xE000E280 |
WO |
مقاطعة 0-31 في انتظار مسح السجل، بإجمالي 32 بت مسح [n]، للمقاطعة #n
في انتظار التوضيح |
0×00000000 |
| PFIC_IPRR1 | 0xE000E284 | WO | مقاطعة 32-63 في انتظار مسح السجل،
المجموع 32 بت واضحة |
0×00000000 |
| … | … | … | … | … |
| PFIC_IPRR7 | 0xE000E29C | WO | مقاطعة 244-255 في انتظار مسح السجل،
المجموع 32 بت واضحة |
0×00000000 |
عندما يقوم المعالج الدقيق بتمكين المقاطعة، يمكن ضبطه مباشرة من خلال سجل المقاطعة المعلقة لتشغيل المقاطعة. استخدم سجل مسح المقاطعة المعلقة لمسح المشغل المعلق.
سجل حالة تنشيط المقاطعة (PFIC_IACTR<0-7>)
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
| PFIC_IACTR0 | 0xE000E300 | RO | يقوم المقاطعة 0-31 بتنشيط سجل الحالة مع 32 بت حالة [n]، مما يشير إلى أن المقاطعة #n قيد التنفيذ | 0×00000000 |
| PFIC_IACTR1 | 0xE000E304 | RO | مقاطعة 32-63 سجل حالة التنشيط، 32 بت حالة في
المجموع |
0×00000000 |
| … | … | … | … | … |
| PFIC_IACTR7 | 0xE000E31C | RO | مقاطعة 224-255 سجل حالة التنشيط، بإجمالي 32 بت حالة | 0×00000000 |
يحتوي كل مقاطعة على بت حالة نشط يتم إعداده عند الدخول إلى المقاطعة ويتم مسحه بواسطة الأجهزة عند عودة السوق.
سجلات أولوية المقاطعة وعتبة الأولوية (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
| PFIC_IPRIOR0 | 0xE000E400 | RW | تكوين أولوية المقاطعة 0. V3A: [7:4]: بتات التحكم بالأولوية إذا لم يكن التكوين متداخلاً، فلا يوجد بت أولوية إذا تم تكوين التعشيش، يكون البت 7 هو البت الذي تم إلغاء الأولوية. [3:0]: محجوز، ثابت على 0 V3B: [7:6]: بتات التحكم بالأولوية إذا لم يتم تضمين التكوين، فلا يتم تضمين أي بتات استباقية، يتم تضمين جميع البتات، ولكن يُسمح بحدوث ما يصل إلى مستويين من المقاطعات [5:0]: محجوزة، ثابتة على 0 الإصدار 3C: [7:5]: بتات التحكم بالأولوية إذا لم يكن التكوين متداخلاً، فلا توجد بتات استباقية إذا تم تكوينه متداخلاً، يتم استباق جميع البتات، ولكن يُسمح بحدوث ما يصل إلى مستويين من المقاطعات [4:0]: محجوزة، ثابتة على 0 ملاحظة: كلما كانت قيمة الأولوية أصغر، كلما زادت الأولوية. إذا تعطلت نفس مقاطعة أولوية الاستباق في نفس الوقت، فسيتم تنفيذ المقاطعة ذات الأولوية الأعلى أولاً. |
0×00 |
| PFIC_IPRIOR1 | 0xE000E401 | RW | مقاطعة إعداد الأولوية 1، نفس وظيفة PFIC_IPRIOR0 | 0×00 |
| PFIC_IPRIOR2 | 0xE000E402 | RW | مقاطعة إعداد الأولوية 2، نفس وظيفة PFIC_IPRIOR0 | |
| … | … | … | … | … |
| PFIC_IPRIOR254 | 0xE000E4FE | RW | إعداد أولوية المقاطعة 254، نفس وظيفة PFIC_IPRIOR0 | 0×00 |
| PFIC_IPRIOR255 | 0xE000E4FF | RW | مقاطعة إعداد الأولوية 255، نفس وظيفة PFIC_IPRIOR0 | 0×00 |
| - | - | - | - | - |
| PFIC_ITHRESDR | 0xE000E040 | RW | تحديد عتبة أولوية المقاطعة
V3A: [31:8]: محجوز، ثابت على 0 [7:4]: عتبة الأولوية [3:0]: محجوز، ثابت على 0الإصدار 3ب: [31:8]: محجوز، ثابت على 0 [7:5]: عتبة الأولوية [4:0]: محجوز، ثابت على 0الإصدار 3C: [31:8]: محجوز، ثابت على 0 [7:5]: عتبة الأولوية [4:0]: محجوز، ثابت على 0ملحوظة: بالنسبة للمقاطعات ذات قيمة الأولوية ≥ العتبة، لا يتم تنفيذ دالة خدمة المقاطعة عند حدوث تعليق، وعندما يكون هذا السجل 0، فهذا يعني أن سجل العتبة غير صالح. |
0×00 |
سجل تكوين المقاطعة (PFIC_CFGR)
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
| PFIC_CFGR | 0xE000E048 | RW | سجل تكوين المقاطعة | 0×00000000 |
هذا السجل صالح فقط لـ V3A، ويتم تعريف بتاته على النحو التالي:
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:16] | رمز المفتاح | WO | بالتوافق مع بتات التحكم المستهدفة المختلفة، يلزم كتابة بيانات تعريف الوصول الأمني المقابلة في وقت واحد من أجل تعديلها، ويتم تثبيت بيانات القراءة على 0. KEY1 = 0xFA05؛ KEY2 = 0xBCAF؛ KEY3 = 0xBEEF. | 0 |
| [15:8] | محجوز | RO | محجوز | 0 |
| 7 | سيريسيت | WO | إعادة تعيين النظام (الكتابة المتزامنة إلى KEY3). مسح تلقائي 0.
كتابة 1 صحيحة، وكتابة 0 غير صحيحة. ملاحظة: نفس وظيفة بت SYSRESET في سجل PFIC_SCTLR. |
0 |
| 6 | إعادة تعيين PFICRESET | WO | إعادة تعيين وحدة PFIC. مسح تلقائي 0.
كتابة 1 صحيحة، وكتابة 0 غير صحيحة. |
0 |
| 5 | يعبر | WO | استثناء المقاطعة المعلقة في انتظار المسح (الكتابة المتزامنة إلى KEY2)
كتابة 1 صحيحة، وكتابة 0 غير صحيحة. |
0 |
| 4 | استثناء | WO | إعداد مقاطعة الاستثناء المعلق (الكتابة المتزامنة إلى KEY2)
كتابة 1 صحيحة، وكتابة 0 غير صحيحة. |
0 |
| 3 | نميرسيت | WO | مقاطعة NMI في انتظار المسح (الكتابة المتزامنة إلى KEY2)
كتابة 1 صحيحة، وكتابة 0 غير صحيحة. |
0 |
| 2 | نميسيت | WO | إعداد انتظار مقاطعة NMI (الكتابة المتزامنة إلى KEY2)
كتابة 1 صحيحة، وكتابة 0 غير صحيحة. |
0 |
| 1 | نستكترل | RW | يتيح تعشيش المقاطعة التحكم.
1: إيقاف؛ 0: تشغيل (كتابة متزامنة إلى KEY1) |
0 |
| 0 | HWSTKCTRL | RW | تمكين التحكم في HPE
1: إيقاف؛ 0: تشغيل (كتابة متزامنة إلى KEY1) |
0 |
سجل حالة المقاطعة العالمية (PFIC_GISR)
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
| PFIC_GISR | 0xE000E04C | RO | مقاطعة سجل الحالة العالمية | 0×00000000 |
يتم تعريف أهلها على أنهم
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:14] | محجوز | RO | محجوز | 0 |
|
13 |
لوكستا |
RO |
ما إذا كان المعالج في حالة مقفلة حاليًا:
1: حالة مقفلة؛ 0: حالة غير مقفلة. ملحوظة: هذا الجزء صالح فقط للإصدار V3B/C. |
0 |
|
12 |
وضع قاعدة البيانات |
RO |
ما إذا كان المعالج في حالة تصحيح حاليًا: 1: حالة التصحيح؛
0: حالة عدم التصحيح. ملحوظة: هذا الجزء صالح فقط للإصدار V3B/C. |
0 |
|
11 |
جلوبلي |
RO |
تمكين المقاطعة العالمية:
1: تمكين المقاطعة؛ 0: تعطيل المقاطعة. ملحوظة: هذا الجزء صالح فقط للإصدار V3B/C. |
|
| 10 | محجوز | RO | محجوز | 0 |
| 9 | جيبيندستا | RO | ما إذا كان هناك مقاطعة معلقة حاليًا.
1: نعم؛ 0: لا. |
0 |
| 8 | جاكتستا | RO | ما إذا كان يتم تنفيذ المقاطعة حاليًا.
1: نعم؛ 0: لا. |
0 |
|
[7:0] |
نيستستا |
RO |
حالة التعشيش الحالية للمقاطعة. 0x03: في مقاطعة المستوى 2.
0x01: في مقاطعة المستوى 1. 0x00: لا تحدث أي مقاطعات. أخرى:وضع مستحيل. |
0 |
سجلات عنوان القاعدة وعنوان الإزاحة لمعرف VTF (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
|
PFIC_VTFBADDRR |
0xE000E044 |
RW |
[31:28]: 4 بتات عالية من عنوان الهدف لـ VTF [27:0]: محجوز
هذا السجل صالح فقط لـ V3A. |
0×00000000 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
[31:24]: عدد فريق العمل 3 [23:16]: عدد فريق العمل 2 [15:8]: عدد فريق العمل 1 [7:0]: عدد فريق العمل 0
هذا السجل صالح فقط لـ V3B/C. |
0×00000000 |
| - | - | - | - | - |
|
PFIC_VTFADDRR0 |
0xE000E060 | RW | V3A: [31:24]: رقم مقاطعة VTF 0 [23:0]: أدنى 24 بت من عنوان هدف VTF، حيث تم تكوين أدنى 20 بت منها لتكون صالحة، و[23:20] ثابت على 0.
الإصدار 3 ب/ج: [31:1]: عنوان VTF 0، محاذي لـ 2 بايت [0]:1: تمكين قناة VTF 0 0: تعطيل |
للإصدار V3A: 0x00000000 للإصدار 3B/C: 0xXXXXXXXX |
|
PFIC_VTFADDRR1 |
0xE000E064 |
RW |
V3A: [31:24]: رقم مقاطعة VTF 1 [23:0]: أدنى 24 بت من عنوان هدف VTF، حيث تم تكوين أدنى 20 بت منها لتكون صالحة و[23:20] ثابتة على 0.
الإصدار 3 ب/ج: [31:1]: عنوان VTF 1، محاذي لـ 2 بايت [0]:1: تمكين قناة VTF 1 0: تعطيل |
للإصدار V3A: 0x00000000 للإصدار 3B/C: 0xXXXXXXXX |
|
PFIC_VTFADDRR2 |
0xE000E068 |
RW |
V3A: [31:24]: رقم مقاطعة VTF 2 [23:0]: أدنى 24 بت من عنوان هدف VTF، حيث تم تكوين أدنى 20 بت منها لتكون صالحة، و[23:20] ثابت على 0.
الإصدار 3 ب/ج: [31:1]: عنوان VTF 2، محاذي لـ 2 بايت [0]:1: تمكين قناة VTF 2 0: تعطيل |
للإصدار V3A: 0x00000000 للإصدار 3B/C: 0xXXXXXXXX |
| PFIC_VTFADDRR3 | 0xE000E06C | RW | V3A: | للإصدار V3A: |
| [31:24]: رقم مقاطعة VTF 3 [23:0]: أدنى 24 بت من عنوان هدف VTF، حيث تم تكوين أدنى 20 بت منها لتكون صالحة، و[23:20] ثابت على 0.
الإصدار 3 ب/ج: [31:1]: عنوان VTF 3، محاذي لـ 2 بايت [0]:1: تمكين قناة VTF 3 0: تعطيل |
0×00000000
للإصدار 3B/C: 0xXXXXXXXX |
سجل التحكم في النظام (PFIC_SCTLR)
| اسم | عنوان الوصول | وصول | وصف | إعادة تعيين القيمة |
| PFIC_SCTLR | 0xE000ED10 | RW | سجل التحكم بالنظام | 0×00000000 |
يتم تعريف كل منهم على النحو التالي.
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| 31 | سيريسيت | WO | إعادة تعيين النظام، مسح تلقائي 0. الكتابة 1 صالحة، والكتابة 0 غير صالحة.
ملاحظة: هذا الجزء صالح فقط لإصدار V3B/C |
0 |
| [30:6] | محجوز | RO | محجوز | 0 |
| 5 | حدث | WO | قم بتعيين الحدث لإيقاظ حالة WFE. | 0 |
|
4 |
سيفونبيند | RW | عندما يحدث حدث أو يقاطع حالة معلقة، يمكن إيقاظ النظام بعد تعليمة WFE، أو إذا لم يتم تنفيذ تعليمة WFE، فسيتم إيقاظ النظام على الفور بعد التنفيذ التالي للتعليمة.
1: يمكن للأحداث الممكّنة وجميع المقاطعات (بما في ذلك المقاطعات غير الممكّنة) إيقاظ النظام. 0: الأحداث الممكنة والممكنة فقط يمكن أن تؤدي المقاطعات إلى إيقاظ النظام. |
0 |
| 3 | ويفيتووفي | RW | قم بتنفيذ أمر WFI كما لو كان WFE.
1: تعامل مع تعليمات WFI اللاحقة باعتبارها تعليمات WFE. 0:لا يوجد تأثير. |
0 |
| 2 | النوم العميق | RW | وضع الطاقة المنخفضة لنظام التحكم. | 0 |
| 1: النوم العميق 0: النوم | ||||
| 1 | النوم إكس تي | RW | حالة النظام بعد خروج التحكم من برنامج خدمة المقاطعة.
1: يدخل النظام في وضع الطاقة المنخفضة. 0:يدخل النظام إلى البرنامج الرئيسي. |
0 |
| 0 | محجوز | RO | محجوز | 0 |
سجلات المسؤولية الاجتماعية للشركات المتعلقة بالمقاطعات
بالإضافة إلى ذلك، فإن سجلات CSR التالية لها أيضًا تأثير كبير على معالجة المقاطعات. سجل التحكم في نظام المقاطعة (intsyscr)
هذا السجل غير صالح لـ V3A فقط:
| اسم | المسؤولية الاجتماعية للشركات عنوان | وصول | وصف | إعادة تعيين القيمة |
| انتسيسكر | 0×804 | يو آر دبليو | سجل التحكم في نظام المقاطعة | 0x0000E002 |
ويتم تعريف أهلها على النحو التالي:
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
|
31 |
قفل |
أورو |
0: يمكن قراءة هذا السجل وكتابته في وضع المستخدم؛
1: لا يمكن قراءة هذا السجل وكتابته إلا في وضع الجهاز. ملاحظة: هذا البت التكويني صالح من الإصدار 1.0 فصاعدا. |
0 |
| [30:6] | محجوز | أورو | محجوز | 0×380 |
|
5 |
جيهوستكنن |
يو آر دبليو 1 |
تم تمكين المقاطعة العالمية وإيقاف تشغيل مكدس الأجهزة.
ملاحظة: غالبًا ما يتم استخدام هذا البت في أنظمة التشغيل في الوقت الفعلي. عندما يتم تبديل السياق أثناء المقاطعة، يمكن أن يؤدي ضبط هذا البت إلى إيقاف تشغيل المقاطعة الشاملة ودفع مكدس الأجهزة. عندما يكتمل تبديل السياق وتعود المقاطعة، سيتم إيقاف تشغيل الأجهزة. مسح هذا الجزء تلقائيًا. |
0 |
| 4 | محجوز | أورو | محجوز | 0 |
| [3:2] | PMTCFG | يو آر دبليو | تكوين بتات الأولوية الاستباقية:
00: عدد بتات الاستباق هو 0؛ 01: عدد بتات الاستباق هو 1؛ 10: عدد بتات الاستباق هو 2؛ 11: عدد بتات الاستباق هو 3؛ ملاحظة: هذا البت التكويني صالح بعد 1.0. |
0 |
| 1 | يستمع | يو آر دبليو | تم تمكين وظيفة تعشيش المقاطعة، والقيمة الثابتة هي 1: | 1 |
| 0: تعطيل؛
1: تمكين. ملاحظة: 1. يتم التحكم في مستوى التعشيش الفعلي بواسطة NEST_LVL في CSR 0xBC1؛ 2. يمكن فقط للإصدارات بعد 1.0 مكتوبة. |
||||
| 0 | هوستكين | يو آر دبليو | تمكين مجموعة الأجهزة:
0: تم تعطيل وظيفة الضغط على مكدس الأجهزة؛ 1: تم تمكين وظيفة الضغط على مكدس الأجهزة. |
0 |
سجل عنوان القاعدة لاستثناء وضع الآلة (mtvec)
| اسم | المسؤولية الاجتماعية للشركات عنوان | وصول | وصف | إعادة تعيين القيمة |
| ام تي في سي | 0×305 | MRW | سجل عنوان قاعدة الاستثناء | 0×00000000 |
يتم تعريف أهلها على أنهم
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:2] | العنوان الأساسي[31:2] | MRW | عنوان قاعدة جدول متجه المقاطعة، حيث
تم إصلاح البتات [9:2] إلى 0. |
0 |
| 1 | الوضع 1 |
صيانة وإصلاح |
وضع التعرف على جدول متجه المقاطعة: 0: تحديد من خلال تعليمات القفز، مع نطاق محدود، ودعم تعليمات عدم القفز؛
1: تحديد من خلال العنوان المطلق، ودعم النطاق الكامل، ولكن يجب القفز. ملحوظة: هذا الجزء صالح فقط لإصدار V3B/C. |
0 |
| 0 | الوضع 0 | MRW | اختيار وضع عنوان إدخال المقاطعة أو الاستثناء.
0: استخدام عنوان الإدخال الموحد. 1: إزاحة العنوان بناءً على رقم المقاطعة *4. |
0 |
بالنسبة لوحدات التحكم الدقيقة التي تحتوي على معالجات دقيقة من سلسلة V3، يتم تكوين MODE0 ليكون 1 افتراضيًا في بدء التشغيل file، ويتم إزاحة الإدخالات الخاصة بالاستثناءات أو المقاطعات وفقًا لرقم المقاطعة *4. لاحظ أن المعالج الدقيق V3A يخزن تعليمة الانتقال في جدول المتجه، بينما يمكن للمعالج الدقيق V3B/C إما تعليمة الانتقال أو استخدام العنوان المطلق لوظيفة المقاطعة، والذي تم تكوينه كعنوان مطلق في بدء التشغيل الافتراضي file.
سجل تكوين المعالج الدقيق (المصحح)
هذا السجل غير صالح لـ V3A:
| اسم | المسؤولية الاجتماعية للشركات عنوان | وصول | وصف | إعادة تعيين القيمة |
| كوريك اف جي ار | 0xBC0 | MRW | سجل تكوين المعالج الدقيق | 0×00000001 |
يتم تعريف أهلها على أنهم
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:8] | محجوز | صيانة وإصلاح | محجوز | 0 |
|
7 |
خطأ CSTA_IE |
MRW |
تمكين مقاطعة خطأ الحالة الأساسية:
0: في حالة حدوث خطأ في الحالة، لا يتم إنشاء مقاطعة NMI؛ 1: في حالة حدوث خطأ في الحالة، يتم مقاطعة NMI تم توليدها. |
0 |
| 6 | محجوز | صيانة وإصلاح | ابقيه 0 | 0 |
| 5 | إعادة تعيين IE_AR | MRW | يتيح تعيين سجل MIE ما يلي:
0: عنوان CSR 0x800 هو سجل للقراءة فقط وقيمة الإرجاع هي قيمة STATUS؛ 1: يتم تعيين البتات 3 و7 من عنوان CSR 0x800 إلى بت MIE لسجل STATUS وبت MPIE لسجل STATUS، على التوالي. |
0 |
| 4 | محجوز | صيانة وإصلاح | محجوز | 0 |
| 3 | ROM_LOOP_ACC | MRW | تمكين تسريع حلقة تعليمات منطقة ROM:
0: قم بإيقاف تشغيل وظيفة التسارع الدوري في منطقة ROM؛ 1: سيتم تسريع التعليمات المستمرة التي تحتوي على نص حلقة في حدود 128 بايت بشكل كامل، بينما سيتم تسريع التعليمات التي تحتوي على نص حلقة في حدود 256 بايت جزئيًا؛ |
0 |
| 2 | روم_جامب_ACC | MRW | تمكين تسريع القفزة لتعليمات منطقة ROM:
0: تعطيل تسريع القفزة الخاصة بإرشادات منطقة ROM؛ 1: تمكين تسريع القفز إلى التعليمات في منطقة ROM. |
0 |
| [1:0] | وضع الجلب | MRW | وضع الجلب:
00: تم إيقاف تشغيل ميزة جلب التعليمات مسبقًا. يتم إيقاف تشغيل وظيفة جلب التعليمات مسبقًا لتجنب عمليات جلب التعليمات غير الصالحة، ولا يوجد أكثر من تعليمة صالحة واحدة على خط أنابيب وحدة المعالجة المركزية. يتمتع هذا النموذج بأقل استهلاك للطاقة، وينخفض أداؤه بحوالي 2 ~ 3 مرات. 01: وضع جلب التعليمات مسبقًا 1. عند تشغيل وظيفة جلب التعليمات مسبقًا، ستستمر وحدة المعالجة المركزية في الوصول إلى ذاكرة التعليمات حتى يتجاوز عدد التعليمات التي سيتم تنفيذها في مخزن التعليمات الداخلي عددًا معينًا، أو يمتلئ مخزن التعليمات، وسيتم تعليق جلب التعليمات؛ (سيؤدي فشل توقع وحدة المعالجة المركزية إلى عملية جلب زائدة عن الحاجة، وفي بعض الحالات، ستقدم وحدة التنفيذ 0 ~ 2 دورة من الفقاعات، ولن ينخفض أداء معظم البرامج بشكل واضح)؛ 10: محجوز؛ |
0×1 |
مقاطعة سجل التحكم المتداخل (inestcr)
هذا السجل غير صالح فقط لـ V3A:
| اسم | المسؤولية الاجتماعية للشركات عنوان | وصول | وصف | إعادة تعيين القيمة |
| مستثمر | 0xBC1 | MRW | مقاطعة سجل التحكم المتداخل | 0×00000000 |
يتم تعريف أهلها على أنهم
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| 31 | محجوز | صيانة وإصلاح | محجوز | 0 |
| 30 | عش_OV | MRW | بت علم تجاوز الحد الأقصى للمقاطعة/الاستثناء، اكتب 1 للمسح:
0: لم يحدث تجاوز للمقاطعة؛ 1: علم تجاوز المقاطعة. ملاحظة: سيحدث تجاوز المقاطعة فقط عند تنفيذ وظيفة خدمة المقاطعة الثانوية لتوليد استثناء تعليمات أو مقاطعة NMI. في هذا الوقت، يدخل الاستثناء ومقاطعة NMI بشكل طبيعي، ولكن مكدس وحدة المعالجة المركزية يفيض، لذا لا يمكنك الخروج من هذا الاستثناء و مقاطعة NMI. |
0 |
| [29:12] | محجوز | صيانة وإصلاح | محجوز | 0 |
| [11:8] | عش_ستا | صيانة وإصلاح | بت علم الحالة المتداخلة:
0000: لا يوجد انقطاع؛ 0001: مقاطعة المستوى 1؛ 0011: مقاطعة المستوى 2 (تداخل المستوى 1)؛ |
0 |
| 0111: مقاطعة المستوى 3 (فيض)؛
1111: مقاطعة المستوى 4 (فيض). |
||||
| [7:2] | محجوز | صيانة وإصلاح | محجوز | 0 |
| [1:0] | عش_مستوى | MRW | مستوى التعشيش:
00: يُحظر التعشيش ويتم إيقاف تشغيل وظيفة التعشيش؛ 01: التعشيش على المستوى الأول، والذي يقوم بتشغيل وظيفة التعشيش؛ أخرى: غير صالح. ملاحظة: اكتب 10 أو 11 في هذا الحقل، وسيتم تعيين الحقل على 01. عند كتابة 11 في هذا الحقل، اقرأ هذا السجل للحصول على أعلى مستوى تعشيش للشريحة. |
0 |
سجل تمكين المقاطعة العالمي في وضع المستخدم (متدرب)
هذا السجل غير صالح فقط لـ V3A:
| اسم | المسؤولية الاجتماعية للشركات عنوان | وصول | وصف | إعادة تعيين القيمة |
| جنتنر | 0×800 | يو آر دبليو | سجل تمكين المقاطعة العالمي | 0×00000000 |
يستخدم هذا السجل للتحكم في تمكين وقناع المقاطعة العالمية. يمكن التحكم في تمكين وقناع المقاطعة العالمية في وضع الآلة من خلال بتات MIE وMPIE في الحالة، ولكن لا يمكن تشغيل هذا السجل في وضع المستخدم.
سجل تمكين المقاطعة العالمي gintenr هو تعيين MIE وMPIE في mstatus، ويمكن استخدامه لتعيين ومسح MIE وMPIE عن طريق تشغيل gintenr في وضع المستخدم.
يتم تعريف كل منهم على النحو التالي:
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:13] | محجوز | أورو | محجوز | 0 |
| [12:11] | عضو مجلس النواب | أورو | ادخل إلى الوضع المميز قبل الانقطاع. | 0 |
| [10:8] | محجوز | أورو | محجوز | 0 |
| 7 | ام بي اي اي | يو آر دبليو | عندما يتم تمكين 0xBC0(CSR)bit5، هذا البت
يمكن قراءتها وكتابتها في وضع المستخدم. |
0 |
| [6:4] | محجوز | أورو | محجوز | 0 |
| 3 | النثريات | يو آر دبليو | عندما يتم تمكين 0xBC0(CSR)bit5، هذا البت
يمكن قراءتها وكتابتها في وضع المستخدم. |
0 |
| [1:0] | محجوز | أورو | محجوز | 0 |
مقاطعة التعشيش
بالتزامن مع المقاطعة وسجل التكوين PFIC_CFGR وسجل أولوية المقاطعة PFIC_IPRIOR، يمكن السماح بحدوث تعشيش المقاطعات. قم بتمكين التعشيش في سجل تكوين المقاطعة (يتم تشغيل التعشيش افتراضيًا لمعالجات سلسلة V3) وقم بتكوين أولوية المقاطعة المقابلة. كلما كانت قيمة الأولوية أصغر، زادت الأولوية. كلما كانت قيمة بت الاستباق أصغر، زادت أولوية الاستباق. إذا كانت هناك مقاطعات معلقة في نفس الوقت تحت نفس أولوية الاستباق، يستجيب المعالج الدقيق للمقاطعة بقيمة الأولوية الأقل (أولوية أعلى) أولاً.
مقدمة وخاتمة الأجهزة (HPE)
- عندما يحدث استثناء أو انقطاع، يوقف المعالج الدقيق تدفق البرنامج الحالي وينتقل إلى تنفيذ وظيفة معالجة الاستثناء أو المقاطعة، ويجب حفظ موقع تدفق البرنامج الحالي. بعد عودة الاستثناء أو المقاطعة، من الضروري استعادة الموقع ومواصلة تنفيذ تدفق البرنامج المتوقف. بالنسبة لمعالجات سلسلة V3، يشير "الموقع" هنا إلى جميع سجلات Caller Saved في الجدول 1-2.
- تدعم معالجات سلسلة V3 الحفظ التلقائي لدورة واحدة من 16 سجلاً من السجلات المحفوظة بواسطة المتصل في منطقة مكدس داخلية غير مرئية للمستخدم. عند عودة الاستثناء أو الانقطاع، تستعيد الدورة الواحدة من الأجهزة البيانات تلقائيًا من منطقة المكدس الداخلية إلى السجلات ذات الشكل 16. تدعم HPE التعشيش حتى مستويين عميقين.
- يظهر الرسم التخطيطي لمكدس ضغط المعالج الدقيق في الشكل التالي.

ملحوظة:
- يجب تجميع وظائف المقاطعة باستخدام HPE باستخدام MRS أو سلسلة الأدوات المقدمة لها ويجب إعلان وظيفة المقاطعة باستخدام __attribute__((interrupt(“WCH-Interrupt-fast”))).
- يتم إعلان وظيفة المقاطعة باستخدام دفع المكدس بواسطة __attribute__((interrupt())).
جدول المتجهات المجاني (VTF)
- يوفر جهاز التحكم في المقاطعة السريعة القابلة للبرمجة (PFIC) 4 قنوات VTF، أي الوصول المباشر إلى إدخال وظيفة المقاطعة دون المرور بعملية البحث في جدول متجه المقاطعة.
- يمكن تمكين قناة VTF عن طريق كتابة رقم المقاطعة وعنوان قاعدة وظيفة خدمة المقاطعة وعنوان الإزاحة في سجل وحدة التحكم PFIC المقابلة أثناء تكوين وظيفة المقاطعة بشكل طبيعي.
- تظهر عملية استجابة PFIC للمقاطعات السريعة والخالية من الجدول في الشكل 3-2 أدناه.

حماية الذاكرة المادية PMP
- من أجل تحسين أمان النظام، تم تصميم وحدة حماية الذاكرة المادية (PMP) وفقًا لمعيار بنية RISC-V لمعالجات سلسلة V3 من Highland Barley. يتم دعم إدارة حقوق الوصول لما يصل إلى 4 مناطق مادية. تتضمن الأذونات سمات القراءة (R) والكتابة (W) والتنفيذ (X)، ويمكن ضبط طول المنطقة المحمية على 4 بايت على الأقل. تعمل وحدة PMP دائمًا في وضع المستخدم، ولكن يمكن أن تعمل اختياريًا عن طريق قفل السمة (L) في وضع الجهاز.
- إذا انتهك الوصول حد الأذونات الحالي، فسيؤدي ذلك إلى حدوث مقاطعة غير طبيعية. تتضمن وحدة PMP أربع مجموعات من سجلات التكوين ذات 8 بتات (مجموعة واحدة من 32 بت) وأربع مجموعات من سجلات العناوين، والتي يجب الوصول إليها جميعًا في وضع الجهاز من خلال تعليمات CSR.
- ملحوظة: قد يختلف عدد المناطق المحمية التي يدعمها PMP في نماذج مختلفة من المعالجات الدقيقة، كما يختلف أيضًا عدد المناطق التي يدعمها سجلا pmpcfg وpmpaddr. راجع الجدول 1-1 للحصول على التفاصيل.
مجموعة سجلات PMP
تظهر قائمة سجلات CSR التي تدعمها وحدة PMP الخاصة بالمعالج الدقيق V3 في الجدول 4-1 أدناه.
الجدول 4-1 مجموعة سجلات وحدة PMP
| اسم | عنوان المسؤولية الاجتماعية للشركات | وصول | وصف | إعادة تعيين القيمة |
| بى ام بى سى اف جى 0 | 0x3A0 | MRW | سجل تكوين PMP 0 | 0×00000000 |
| بى امبادر0 | 0x3B0 | MRW | سجل عنوان PMP 0 | 0xXXXXXXXXX |
| بى امبادر1 | 0x3B1 | MRW | سجل عنوان PMP 1 | 0xXXXXXXXXX |
| بى امبادر2 | 0x3B2 | MRW | سجل عنوان PMP 2 | 0xXXXXXXXXX |
| بى امبادر3 | 0x3B3 | MRW | سجل عنوان PMP 3 | 0xXXXXXXXXX |
pmpcfg هو سجل التكوين لوحدة PMP، ويحتوي كل سجل على أربعة حقول ضخ مكونة من 8 بتات، تتوافق مع تكوين أربع مناطق، ويمثل الضخ قيمة تكوين المنطقة i. ويظهر تنسيقه في الجدول 4-2 التالي.
الجدول 4-2 سجل pmpcfg0
يتم استخدام pmpcfg لتكوين المنطقة I ويتم وصف تعريف البت الخاص بها في الجدول 4-3 التالي.
الجدول 4-3
| قليل | اسم | وصف |
| 7 | L | تم تمكين القفل ويمكن إلغاء قفله في وضع الجهاز. 0: غير مقفل؛
1: قفل السجل ذي الصلة. |
| [6:5] | - | محجوز |
| [4:3] | A | محاذاة العنوان واختيار نطاق منطقة الحماية. 00: إيقاف التشغيل (إيقاف تشغيل PMP)
01: TOR (حماية المحاذاة العلوية) 10: NA4 (حماية ثابتة بأربعة بايتات) 11: NAPOT (2(G+2) حماية البايت، G≥1) |
| 2 | X | سمة قابلة للتنفيذ. |
| 0: لا يوجد إذن تنفيذ؛
1: تنفيذ الإذن. |
||
|
1 |
W |
خاصية قابلة للكتابة.
0: لا يوجد إذن كتابة 1: إذن كتابة. |
|
0 |
R |
سمة قابلة للقراءة
0: لا يوجد إذن قراءة 1: إذن قراءة. |
pmpaddr
يتم استخدام سجل pmpaddr لتكوين عنوان المنطقة I. التعريف القياسي هو تحت بنية RV32، وهو ترميز 32 بت العليا من عنوان مادي 34 بت، ويظهر تنسيقه في الجدول 4-4 التالي.
تبلغ مساحة العنوان المادية الكاملة للمعالج الدقيق V3 4G، لذا لا يتم استخدام البتاتين العلويتين من هذا السجل.
الجدول 4-4 pmpaddr
عندما يتم تحديد NAPOT، يتم أيضًا استخدام البت المنخفض من سجل العناوين للإشارة إلى حجم منطقة الحماية الحالية، كما هو موضح في الجدول التالي، حيث "y" هو بت من السجل.
الجدول 4-5 جدول العلاقة بين تكوين PMP وسجل العناوين والمنطقة المحمية.
| بى ام بادر | pmpcfg. أ | مطابقة عنوان القاعدة والحجم |
| يييييي...ييي | نا4 | مع "yy…yyyy00" كعنوان أساسي، تكون المنطقة المكونة من 4 بايت محمية. |
| يييييي...ييي0 | نابوت | مع "yy…yyy000" كعنوان أساسي، تكون المنطقة المكونة من 8 بايت محمية. |
| يييييي...يي01 | نابوت | مع "yy…yy0000" كعنوان أساسي، تكون المنطقة المكونة من 16 بايت محمية. |
| يييييي...y011 | نابوت | مع "yy…y00000" كعنوان أساسي، تكون المنطقة المكونة من 16 بايت محمية. |
| … | … | … |
| ييي01…111 | نابوت | مع "y0…000000" كعنوان أساسي، تكون المنطقة التي تبلغ مساحتها 231 بايت محمية. |
| ي011…111 | نابوت | حماية كامل المنطقة التي تبلغ 232 بايت. |
آلية الحماية
يتم استخدام X/W/R في pmpcfg لتعيين سلطة الحماية للمنطقة I، وسوف يؤدي انتهاك السلطة ذات الصلة إلى استثناء مماثل:
- عند محاولة جلب التعليمات في منطقة PMP دون إذن التنفيذ، فسيؤدي ذلك إلى حدوث استثناء خطأ في الوصول إلى جلب التعليمات (mcause=1).
- عند محاولة كتابة البيانات في منطقة PMP دون إذن كتابي، سيؤدي ذلك إلى حدوث استثناء خطأ (mcause=7) في وصول تعليمات المتجر.
- عند محاولة قراءة البيانات في منطقة PMP دون إذن القراءة، فسيؤدي ذلك إلى حدوث خطأ غير طبيعي في الوصول إلى الذاكرة (mcause=5) لتعليمات التحميل.
يتم استخدام A في pmpcfg لتعيين نطاق الحماية ومحاذاة العنوان للمنطقة I، ولحماية ذاكرة A_ADDR ≤ المنطقة < i > < B_ADDR (يجب محاذاة كل من A_ADDR وB_ADDR في 4 بايت):
- إذا كان B _ ADDR–A_ADDR = = 22، يتم اعتماد الوضع NA4؛
- إذا كان B _ ADDR–A_ADDR = = 2(G+2)، G ≥1، وعنوان _ هو 2(g+2)، يتم اعتماد طريقة NAPOT؛
- وإلا فسيتم اعتماد الوضع TOP.
الجدول 4-6 طرق مطابقة عناوين PMP
| قيمة | اسم | وصف |
| 0ب00 | عن | لا يوجد مجال للحماية |
| 0ب01 | تور | حماية المنطقة المحاذية للأعلى.
تحت pmp pmpaddri = B_ADDR >> 2. ملاحظة: إذا تم تكوين المنطقة 0 من PMP كوضع TOR (i=0)، فإن الحد الأدنى لمنطقة الحماية هو العنوان 0، أي 0 ≤ addr < pmpaddr0، وكلها ضمن النطاق المطابق. |
| 0ب10 | نا4 | تم إصلاح حماية المنطقة المكونة من 4 بايت.
pmp |
| 0ب11 | نابوت | حماية المنطقة 2(G+2) مع G ≥ 1، عندما يكون A_ADDR محاذيًا لـ 2(G+2). pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1. |
- تدعم معالجات QingKe V3 حماية مناطق متعددة. عندما تتطابق نفس العملية مع مناطق متعددة في نفس الوقت، تتم مطابقة المنطقة ذات الرقم الأصغر أولاً.
مؤقت النظام (SysTick)
- تم تصميم المعالج الدقيق من سلسلة QingKe V3 بعداد 32 بت أو 64 بت (SysTick) بداخله. مصدر الساعة هو ساعة النظام أو قسمها ذي الثماني ترددات، ويدعم V8A فقط قسم الثماني ترددات.
- يمكنه توفير قاعدة زمنية وتوقيت ووقت قياس لنظام تشغيل في الوقت الفعلي. تحتوي الأنواع المختلفة من السجلات المشاركة في المؤقت على عناوين تعيين مختلفة، كما هو موضح في الجدولين 5-1 و5-2 التاليين.
الجدول 5-1 قائمة سجلات SysTick V3A
| اسم | عنوان الوصول | وصف | إعادة تعيين القيمة |
| STK_CTLR | 0xE000F000 | سجل التحكم في عداد النظام | 0×00000000 |
| STK_CNTL | 0xE000F004 | عداد النظام سجل منخفض | 0xXXXXXXXXX |
| STK_CNTH | 0xE000F008 | عداد النظام سجل مرتفع
ملحوظة: صالح فقط لإصدار V3A. |
0xXXXXXXXXX |
| STK_CMPLR | 0xE000F00C | مقارنة عدد النظام قيمة السجل المنخفض | 0xXXXXXXXXX |
| STK_CMPHR | 0xE000F010 | مقارنة عدد النظام قيمة السجل العالي
ملحوظة: صالح فقط لإصدار V3A. |
0xXXXXXXXXX |
الجدول 5-2 قائمة سجلات SysTick V3 للنماذج الأخرى
| اسم | عنوان الوصول | وصف | إعادة تعيين القيمة |
| STK_CTLR | 0xE000F000 | سجل التحكم في عداد النظام | 0×00000000 |
| STK_SR | 0xE000F004 | سجل حالة عداد النظام | 0×00000000 |
| STK_CNTL | 0xE000F008 | السجل المنخفض لعداد النظام | 0xXXXXXXXXX |
| STK_CMPLR | 0xE000F010 | عدد مقارنة القيمة المسجلة المنخفضة | 0xXXXXXXXXX |
يتم وصف كل سجل بالتفصيل على النحو التالي.
سجل التحكم في عداد النظام (STK_CTLR)
الجدول 5-3 سجلات التحكم في SysTick
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:5] | محجوز | RO | محجوز | 0 |
|
4 |
وضع |
RW |
وضع العد: 1: العد التنازلي؛
0: العد للأعلى. ملحوظة: غير صالح لإصدار V3A. |
0 |
|
3 |
STRE |
RW |
بت تمكين عداد إعادة التحميل التلقائي:
1: العد من 0 مرة أخرى بعد العد تصاعديًا إلى قيمة المقارنة، والعد من قيمة المقارنة مرة أخرى بعد العد تنازليًا إلى 0؛ 0: استمر في العد للأعلى/للأسفل. ملحوظة: غير صالح لإصدار V3A. |
0 |
|
2 |
اس تي سي ال كيه |
RW |
بت اختيار مصدر عكس الساعة:
1: HCLK كقاعدة زمنية؛ 0: HCLK/8 كقاعدة زمنية. ملاحظة: هذا غير صالح لإصدار V3A، الذي يدعم فقط HCLK/8 كقاعدة زمنية. |
0 |
| 1 | موقع | RW | بتات التحكم في تمكين المقاطعة المضادة: | 0 |
| 1: تمكين مقاطعة العداد؛ 0: تعطيل مقاطعة العداد.
ملحوظة: غير صالح لإصدار V3A. |
||||
| 0 | ستي | RW | يتيح عداد النظام بت التحكم. 1: تمكين عداد النظام STK؛
0: قم بتعطيل عداد النظام STK ويتوقف العداد عن العد. |
0 |
سجل حالة عداد النظام (STK_SR)
لا ينطبق هذا السجل على V3A.
الجدول 5-4 سجل منخفض لعداد SysTick
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
|
31 |
سويي |
RW |
تمكين تشغيل مقاطعة البرنامج (SWI): 1: تشغيل مقاطعة البرنامج؛
0: قم بإيقاف تشغيل الزناد. ملاحظة: يجب مسح هذا البت بعد الدخول إلى مقاطعة البرنامج، وإلا فسيتم تشغيله دائمًا. |
0 |
| [30:1] | محجوز | RO | محجوز | 0 |
|
0 |
سي إن تي آي إف |
RW |
علم مقارنة العد، اكتب 0 بوضوح، كتابة 1 غير صالح:
1: العد حتى قيمة المقارنة والعد التنازلي حتى 0؛ 0: لم يتم الوصول إلى قيمة المقارنة. |
0 |
سجل منخفض لعداد النظام (STK_CNTL)
الجدول 5-5 سجل منخفض لعداد SysTick
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:0] | سي إن تي إل | RW | قيمة عدد العداد الحالية أقل بمقدار 32 بت. بالنسبة إلى V3A، يمكن قراءة هذا السجل على أنه 8 بت/16 بت
/32 بت، ولكن لا يمكن كتابتها إلا على هيئة 8 بت، وغيرها النماذج ليست محدودة. |
0xXXXXXX XXX |
ملحوظة: يشكل السجل STK_CNTL والسجل STK_CNTH في V3A معًا عداد نظام 64 بت.
سجل مرتفع لعداد النظام (STK_CNTH)
الجدول 5-6 سجل مرتفع لعداد SysTick
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:0] | CNTH | RW | قيمة عدد العداد الحالية أعلى بـ 32 بت. يمكن قراءة هذا السجل بواسطة 8 بت/16 بت/32 بت، ولكن لا يمكن كتابته إلا بواسطة 8 بت.
ملحوظة: صالح فقط لإصدار V3A. |
0xXXXXXX XXX |
ملحوظة: يشكل السجل STK_CNTL والسجل STK_CNTH في V3A معًا عداد نظام 64 بت.
قيمة مقارنة عدد النظام للسجل المنخفض (STK_CMPLR)
الجدول 5-7 قيمة مقارنة SysTick للسجل المنخفض
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:0] | CMPL | RW | اضبط قيمة مقارنة العداد على 32 بت أقل. عندما تكون قيمة CMP وقيمة CNT متساويتين، سيتم تشغيل مقاطعة STK. بالنسبة لـ V3A، يمكن قراءة هذا السجل على أنه 8 بت / 16 بت / 32 بت، ولكن يمكن فقط
مكتوبة على أنها 8 بت، ولا توجد نماذج أخرى محدودة. |
0xXXXXXX XXX |
ملحوظة: يشكل السجل STK_CMPLR والسجل STK_CMPHR في V3A معًا قيمة مقارنة العداد المكونة من 64 بت.
قيمة مقارنة عدد النظام للسجل المرتفع (STK_CMPHR)
الجدول 5-8 قيمة مقارنة SysTick للسجل المرتفع
| قليل | اسم | وصول | وصف | إعادة تعيين القيمة |
| [31:0] | سمبف | RW | اضبط قيمة مقارنة العداد بمقدار 32 بت أعلى. سيتم تشغيل مقاطعة STK عندما تكون قيمة CMP وقيمة CNT متساويتين.
يمكن قراءة هذا السجل بواسطة 8 بت/16 بت/32 بت، ولكن لا يمكن كتابته إلا بواسطة 8 بت. ملحوظة: صالح فقط لإصدار V3A. |
0xXXXXXX XXX |
ملحوظة: يشكل السجل STK_CMPLR والسجل STK_CMPHR في V3A معًا قيمة مقارنة العداد المكونة من 64 بت.
إعدادات الطاقة المنخفضة للمعالج
- تدعم معالجات QingKe V3 سلسلة حالة السكون عبر تعليمات WFI (انتظار المقاطعة) لتحقيق استهلاك منخفض للطاقة الساكنة.
- باستخدام سجل التحكم في نظام PFIC (PFIC_SCTLR)، يمكن تنفيذ أوضاع السكون المختلفة وتعليمات WFE.
أدخل النوم
- يمكن لمعالجات QingKe V3 من السلسلة الدخول في وضع السكون بطريقتين، انتظار المقاطعة (WFI) وانتظار الحدث (WFE). تعني طريقة WFI أن المعالج يدخل في وضع السكون، وينتظر استيقاظ المقاطعة، ثم يستيقظ على المقاطعة المقابلة لتنفيذها. تعني طريقة WFE أن المعالج يدخل في وضع السكون، وينتظر استيقاظ الحدث، ثم يستيقظ لمواصلة تنفيذ تدفق البرنامج الذي توقف سابقًا.
- يدعم RISC-V القياسي تعليمات WFI، ويمكن تنفيذ أمر WFI مباشرةً للدخول في وضع السكون باستخدام طريقة WFI. بالنسبة لطريقة WFE، يتم استخدام بت WFITOWFE في سجل التحكم في النظام PFIC_SCTLR للتحكم في أوامر WFI اللاحقة كمعالجة WFE لتحقيق طريقة WFE للدخول في وضع السكون.
- يتم التحكم في عمق النوم وفقًا لبت SLEEPDEEP في PFIC_SCTLR.
- إذا تم مسح SLEEPDEEP في السجل PFIC_SCTLR إلى الصفر، يدخل المعالج الدقيق في وضع السكون ويُسمح بإيقاف تشغيل ساعة الوحدة الداخلية باستثناء SysTick وجزء من منطق الاستيقاظ.
- إذا تم تعيين SLEEPDEEP في السجل PFIC_SCTLR، يدخل المعالج الدقيق في وضع السكون العميق ويُسمح بإيقاف تشغيل جميع ساعات الخلية.
- عندما يكون المعالج الدقيق في وضع التصحيح، فإنه من غير الممكن الدخول إلى أي نوع من وضع السكون.
النوم والاستيقاظ
من الممكن إيقاظ معالجات QingKe V3 من السلسلة بعد السكون بفضل WFI وWFE بالطرق التالية.
بعد أن تدخل طريقة WFI في وضع السكون، يمكن إيقاظها بواسطة
- يمكن إيقاظ المعالج الدقيق من خلال مصدر المقاطعة الذي يستجيب له وحدة التحكم في المقاطعة. بعد الاستيقاظ، يقوم المعالج الدقيق بتنفيذ وظيفة المقاطعة أولاً.
- الدخول إلى وضع السكون، يمكن لطلب التصحيح أن يجعل المعالج الدقيق يستيقظ ويدخل في وضع السكون العميق، ولا يمكن لطلب التصحيح أن يوقظ المعالج الدقيق.
بعد انتقال طريقة WFE إلى وضع السكون، يمكن إيقاظ المعالج الدقيق من خلال ما يلي.
- الأحداث الداخلية والخارجية، عندما لا تكون هناك حاجة لتكوين وحدة تحكم المقاطعة، تستيقظ وتستمر في تنفيذ البرنامج.
- إذا تم تمكين مصدر المقاطعة، يتم إيقاظ المعالج الدقيق عند إنشاء مقاطعة، وبعد الاستيقاظ، يقوم المعالج الدقيق بتنفيذ وظيفة المقاطعة أولاً.
- إذا تم تكوين بت SEVONPEND في PFIC_SCTLR، فإن وحدة التحكم في المقاطعة لا تمكن المقاطعة، ولكن عندما يتم إنشاء إشارة جديدة لانتظار المقاطعة (لا تسري إشارة الانتظار التي تم إنشاؤها مسبقًا)، فيمكنها أيضًا جعل المعالج الدقيق يستيقظ، ويجب مسح علم انتظار المقاطعة المقابل يدويًا بعد الاستيقاظ.
- قد يؤدي طلب تصحيح أخطاء وضع السكون إلى إيقاظ المعالج الدقيق والدخول في وضع السكون العميق، بينما لا يمكن لطلب التصحيح إيقاظ المعالج الدقيق.
- بالإضافة إلى ذلك، يمكن التحكم في حالة المعالج الدقيق بعد الاستيقاظ عن طريق تكوين بت SLEEPONEXIT في PFIC_SCTLR.
- تم ضبط SLEEPONEXIT وسوف تعمل تعليمات إرجاع المقاطعة للمستوى الأخير (mret) على تشغيل وضع السكون WFI.
تم التخلص من SLEEPONEXIT دون أي تأثير.
يمكن لمنتجات MCU المختلفة المزودة بمعالجات دقيقة من سلسلة V3 اعتماد أوضاع نوم مختلفة، وإيقاف تشغيل الأجهزة الطرفية والساعات المختلفة، وتنفيذ سياسات إدارة الطاقة المختلفة وطرق الاستيقاظ وفقًا لتكوينات PFIC_SCTLR المختلفة، وتحقيق أوضاع طاقة منخفضة مختلفة.
دعم التصحيح
- تتضمن سلسلة معالجات QingKe V3 وحدة تصحيح أخطاء الأجهزة التي تدعم عمليات التصحيح المعقدة. عندما يتم تعليق المعالج الدقيق، يمكن لوحدة التصحيح الوصول إلى GPRs وCSRs والذاكرة والأجهزة الخارجية وما إلى ذلك من خلال الأوامر المجردة وتعليمات نشر مخزن البرنامج وما إلى ذلك. يمكن لوحدة التصحيح تعليق واستئناف تشغيل المعالج الدقيق.
- تتبع وحدة التصحيح مواصفات دعم التصحيح الخارجي RISC-V إصدار 0.13.2، ويمكن تنزيل الوثائق التفصيلية من RISC-V International webموقع.
وحدة التصحيح
- تتضمن وحدة التصحيح الموجودة داخل المعالج الدقيق، القادرة على تنفيذ عمليات التصحيح الصادرة عن مضيف التصحيح، ما يلي:
- الوصول إلى السجلات من خلال واجهة التصحيح
- إعادة تعيين وتعليق واستئناف تشغيل المعالج الدقيق من خلال واجهة التصحيح
- قراءة وكتابة الذاكرة وسجلات التعليمات والأجهزة الخارجية من خلال واجهة التصحيح
- نشر تعليمات عشوائية متعددة من خلال واجهة التصحيح
- تعيين نقاط توقف البرامج من خلال واجهة التصحيح
- تعيين نقاط توقف الأجهزة من خلال واجهة التصحيح
- دعم التنفيذ التلقائي للأوامر المجردة
- دعم تصحيح الأخطاء بخطوة واحدة
- ملحوظة: لا يدعم الإصدار V3A نقاط توقف الأجهزة، وتدعم نقاط توقف الأجهزة V3B مطابقة عنوان التعليمات، وتدعم نقاط توقف الأجهزة V3C مطابقة عنوان التعليمات وعنوان البيانات.
- تستخدم السجلات الداخلية لوحدة التصحيح رمز عنوان مكون من 7 بتات، ويتم تنفيذ السجلات التالية داخل معالجات QingKe V3 من السلسلة.
الجدول 7-1 قائمة سجلات وحدة التصحيح
| اسم | عنوان الوصول | وصف |
| البيانات0 | 0×04 | سجل البيانات 0، يمكن استخدامه للتخزين المؤقت للبيانات |
| البيانات1 | 0×05 | سجل البيانات 1، يمكن استخدامه للتخزين المؤقت للبيانات |
| إزالة السيطرة | 0×10 | سجل التحكم في وحدة التصحيح |
| حالة dm | 0×11 | سجل حالة وحدة التصحيح |
| هارتنفو | 0×12 | سجل حالة المعالج الدقيق |
| ملخصات | 0×16 | سجل حالة الأوامر المجردة |
| يأمر | 0×17 | سجل الأوامر المجردة |
| مجردة السيارات | 0×18 | تنفيذ الأوامر المجردة تلقائيًا |
| بروغبوف0-7 | 0x20-0x27 | سجلات ذاكرة التخزين المؤقت للتعليمات 0-7 |
| هالتسوم0 | 0×40 | سجل حالة الإيقاف المؤقت |
- يمكن لمضيف التصحيح التحكم في تعليق المعالج الدقيق واستئنافه وإعادة تعيينه وما إلى ذلك من خلال تكوين سجل إلغاء التحكم. يحدد معيار RISC-V ثلاثة أنواع من الأوامر المجردة: سجل الوصول والوصول السريع وذاكرة الوصول.
- يدعم المعالج الدقيق QingKe V3A الوصول إلى السجلات فقط، وتدعم الطرز الأخرى الوصول إلى السجلات والذاكرة، ولكن ليس الوصول السريع. يمكن تحقيق الوصول إلى السجلات (GPRs وCSRs) والوصول المستمر إلى الذاكرة من خلال الأوامر المجردة.
- تطبق وحدة التصحيح 8 سجلات ذاكرة تخزين مؤقتة للتعليمات progbuf0-7، ويمكن لمضيف التصحيح تخزين تعليمات متعددة (والتي يمكن أن تكون تعليمات مضغوطة) في المخزن المؤقت ويمكنه اختيار الاستمرار في تنفيذ التعليمات في سجلات ذاكرة التخزين المؤقت للتعليمات بعد تنفيذ الأمر المجرد أو تنفيذ التعليمات المخزنة مؤقتًا بشكل مباشر.
- ملحوظة إن آخر تعليمة في البرامج يجب أن تكون تعليمة "ebreak" أو "c.ebreak". كما يمكن الوصول إلى التخزين والأجهزة الطرفية وما إلى ذلك من خلال الأوامر والتعليمات المجردة المخزنة مؤقتًا في البرامج.
- يتم وصف كل سجل بالتفصيل على النحو التالي.
- سجل البيانات 0 (data0)
الجدول 7-2 تعريف سجل البيانات
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | البيانات0 | RW | سجل البيانات 0، يستخدم للتخزين المؤقت للبيانات | 0 |
سجل البيانات 1 (data1)
الجدول 7-3 تعريف سجل البيانات 1
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | البيانات1 | RW | سجل البيانات 1، يستخدم للتخزين المؤقت للبيانات | 0 |
سجل التحكم في وحدة التصحيح (إلغاء التحكم)
يتحكم هذا السجل في إيقاف مؤقت وإعادة تعيين واستئناف عمل المعالج الدقيق. يكتب مضيف التصحيح البيانات في الحقل المقابل لتحقيق الإيقاف المؤقت (haltreq) وإعادة التعيين (ndmreset) والاستئناف (resumereq). يمكنك وصف ما يلي.
الجدول 7-4 تعريف سجل إلغاء التحكم
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| 31 | هالترك | WO | 0: مسح طلب الإيقاف المؤقت
1: إرسال طلب إيقاف مؤقت |
0 |
| 30 | استئناف الطلب | W1 | 0: غير صالح
1: استعادة المعالج الدقيق الحالي ملاحظة: الكتابة 1 صالحة ويتم مسح الأجهزة بعد استعادة المعالج الدقيق |
0 |
| 29 | محجوز | RO | محجوز | 0 |
| 28 | أكهافيريست | W1 | 0: غير صالح
1: مسح بت حالة الحصاد للمعالج الدقيق |
0 |
| [27:2] | محجوز | RO | محجوز | 0 |
| 1 | إعادة تعيين ndm | RW | 0: مسح إعادة الضبط
1: إعادة تعيين النظام بأكمله باستثناء وحدة التصحيح |
0 |
| 0 | إلغاء التنشيط | RW | 0: إعادة تعيين وحدة التصحيح
1: تعمل وحدة التصحيح بشكل صحيح |
0 |
سجل حالة وحدة التصحيح (حالة dm)
- يتم استخدام هذا السجل للإشارة إلى حالة وحدة التصحيح وهو سجل للقراءة فقط مع الوصف التالي لكل بت.
طاولة 7-5 تعريف سجل dmstatus
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:20] | محجوز | RO | محجوز | 0 |
| 19 | تم إعادة تعيين كل شيء | RO | 0: غير صالح
1: إعادة ضبط المعالج الدقيق |
0 |
| 18 | هل قمت بإعادة الضبط؟ | RO | 0: غير صالح
1: إعادة ضبط المعالج الدقيق |
0 |
| 17 | كل ما يخصك | RO | 0: غير صالح
1: إعادة ضبط المعالج الدقيق |
0 |
| 16 | أي سيرة ذاتية | RO | 0: غير صالح
1: إعادة ضبط المعالج الدقيق |
0 |
| [15:14] | محجوز | RO | محجوز | 0 |
| 13 | طمي | RO | 0: غير صالح
1: المعالج الدقيق غير متوفر |
0 |
| 12 | أي فائدة | RO | 0: غير صالح
1: المعالج الدقيق غير متوفر |
0 |
| 11 | الكل يركض | RO | 0: غير صالح
1: المعالج الدقيق قيد التشغيل |
0 |
| 10 | أي تشغيل | RO | 0: غير صالح
1: المعالج الدقيق قيد التشغيل |
0 |
| 9 | متوقف | RO | 0: غير صالح
1: المعالج الدقيق معلق |
0 |
| 8 | أي توقف | RO | 0: غير صالح
1: المعالج الدقيق خارج التعليق |
0 |
| 7 | مُصادق عليه |
RO |
0: يلزم المصادقة قبل استخدام وحدة التصحيح
1: تم اعتماد وحدة التصحيح |
0×1 |
| [6:4] | محجوز | RO | محجوز | 0 |
| [3:0] | إصدار | RO | تصحيح أخطاء بنية دعم النظام الإصدار 0010: V0.13 | 0×2 |
سجل حالة المعالج الدقيق (hartinfo)
يتم استخدام هذا السجل لتوفير معلومات حول المعالج الدقيق إلى مضيف التصحيح وهو سجل للقراءة فقط حيث يتم وصف كل بت على النحو التالي.
جدول 7-6 تعريف سجل hartinfo
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:24] | محجوز | RO | محجوز | 0 |
| [23:20] | يخدش | RO | عدد سجلات الخدش المدعومة | 0×3 |
| [19:17] | محجوز | RO | محجوز | 0 |
| 16 | الوصول إلى البيانات | RO | 0: يتم تعيين سجل البيانات إلى عنوان CSR
1: يتم تعيين سجل البيانات إلى عنوان الذاكرة |
0×1 |
| [15:12] | حجم البيانات | RO | عدد سجلات البيانات | 0×2 |
| [11:0] | إضافة البيانات |
RO |
عنوان الإزاحة لسجل البيانات data0،
الذي عنوانه الأساسي هو 0xe0000000، يخضع لقراءة محددة. |
0xXXX |
ملخصات الأوامر وسجلات الحالة (ملخصات)
يستخدم هذا السجل للإشارة إلى تنفيذ الأمر المجرد. يمكن لمضيف التصحيح قراءة هذا السجل لمعرفة ما إذا كان آخر أمر مجرد تم تنفيذه أم لا ويمكنه التحقق مما إذا كان قد تم إنشاء خطأ أثناء تنفيذ الأمر المجرد ونوع الخطأ، والذي يتم وصفه بالتفصيل على النحو التالي.
الجدول 7-7 ملخصات سجلات التعريفات
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:29] | محجوز | RO | محجوز | 0 |
| [28:24] | حجم البرنامج | RO | يشير إلى عدد برامج المخزن المؤقت
سجلات التخزين المؤقت |
0×8 |
| [23:13] | محجوز | RO | محجوز | 0 |
| 12 | مشغول | RO | 0: لا يتم تنفيذ أي أمر تجريدي
1: هناك أوامر مجردة يتم تنفيذها ملحوظة: بعد التنفيذ، يتم مسح الأجهزة. |
0 |
| 11 | محجوز | RO | محجوز | 0 |
| [10:8] | كمدر | RW | نوع خطأ الأمر المجرد 000: لا يوجد خطأ
001: تنفيذ الأوامر المجردة للكتابة إلى الأوامر والملخصات والسجلات التلقائية المجردة أو القراءة والكتابة إلى البيانات وسجلات progbuf 010: لا يدعم الأمر المجرد الحالي 011: تنفيذ الأمر المجرد مع وجود استثناء 100: المعالج الدقيق غير معلق أو غير متاح ولا يمكنه تنفيذ الأوامر المجردة 101: خطأ في الناقل 110: خطأ بت التكافؤ أثناء الاتصال 111: أخطاء أخرى ملحوظة: بالنسبة لكتابة البت، يتم استخدام الرقم 1 لمسح الصفر. |
0 |
| [7:4] | محجوز | RO | محجوز | 0 |
| [3:0] | تخفيض | RO | عدد سجلات البيانات | 0×2 |
- يمكن لمضيفات التصحيح الوصول إلى سجلات GPR، وسجلات CSR، والذاكرة عن طريق كتابة قيم تكوين مختلفة في سجل الأوامر المجردة.
- عند الوصول إلى السجلات، يتم تعريف بتات سجل الأوامر على النحو التالي.
- الجدول 7-8 تعريف سجل الأوامر عند الوصول إلى السجلات
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:24] | نوع الأمر | WO | نوع الأمر المجرد 0: سجل الوصول؛
1: الوصول السريع (غير مدعوم)؛ 2: الوصول إلى الذاكرة. |
0 |
| 23 | محجوز | WO | محجوز | 0 |
| [22:20] | أرسايز | WO | عرض بت بيانات سجل الوصول 000: 8 بت
001: 16 بت 010: 32 بت |
0 |
| 011: 64 بت (غير مدعوم) 100: 128 بت (غير مدعوم)
ملاحظة: عند الوصول إلى سجلات الفاصلة العائمة FPRs، يدعم الوصول إلى 32 بت فقط. |
||||
| 19 | زيادة في القيمة | WO | 0: لا يوجد تأثير
1: زيادة قيمة regno تلقائيًا بعد الوصول إلى السجل |
0 |
| 18 | وظيفة تنفيذية | WO | 0: لا يوجد تأثير
1: قم بتنفيذ الأمر المجرد ثم قم بتنفيذ الأمر في progbuf |
0 |
| 17 | تحويل | WO | 0: لا تقم بتنفيذ العملية المحددة بواسطة الكتابة
1: تنفيذ المعالجة المحددة بواسطة الكتابة |
0 |
| 16 | يكتب | WO | 0: نسخ البيانات من السجل المحدد إلى data0 1: نسخ البيانات من السجل data0 إلى السجل المحدد |
0 |
| [15:0] | ريجنو | WO | حدد سجلات الوصول 0x0000-0x0fff هي CSRs 0x1000-0x101f هي GPRs |
0 |
عند الوصول إلى الذاكرة، يتم تعريف البتات الموجودة في سجل الأوامر على النحو التالي.
الجدول 7-9 تعريف أمر التسجيل عند الوصول إلى الذاكرة
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:24] | نوع الأمر | WO | نوع الأمر المجرد 0: سجل الوصول؛
1: الوصول السريع (غير مدعوم)؛ 2: الوصول إلى الذاكرة. |
0 |
| 23 | aamvirtual | WO | 0: الوصول إلى العنوان الفعلي؛
1: الوصول إلى العنوان الافتراضي. |
0 |
| [22:20] | حجم الذراع | WO | عرض بت بيانات ذاكرة الوصول 000: 8 بت؛
001: 16 بت؛ 010: 32 بت؛ 011: 64 بت (غير مدعوم)؛ 100: 128 بت (غير مدعوم)؛ |
0 |
| 19 | aampزيادة مفاجئة | WO | 0: لا يوجد تأثير؛
1: بعد الوصول إلى الذاكرة بنجاح، قم بزيادة العنوان المخزن في سجل data1 بعدد البايتات المقابلة لعرض البت المحدد بواسطة حجم الذراع. Aamsize=0، يمكن الوصول إليه عن طريق البايت، البيانات 1 زائد 1. Aamsize=1، يمكن الوصول إليه عن طريق نصف الكلمة، data1 بالإضافة إلى 2. aamsize=2، يمكن الوصول إليه عن طريق البت، data1 بالإضافة إلى 4. |
0 |
| 18 | وظيفة تنفيذية | WO | 0: لا يوجد تأثير؛
1: قم بتنفيذ الأمر في progbuf بعد تنفيذ الأمر المجرد. |
0 |
| 17 | احتياطي | RO | محجوز | 0 |
|
16 |
يكتب |
WO |
0: قراءة البيانات من العنوان المحدد بواسطة data1 إلى data0
1: اكتب البيانات في data0 إلى العنوان المحدد بواسطة البيانات 1. |
0 |
|
[15:14] |
هدف محدد |
WO |
تعريف أسلوب القراءة والكتابة الكتابة:
00، 01: الكتابة مباشرة في الذاكرة؛ 10: بعد أن تتم عملية OR للبيانات الموجودة في data0 مع بتات البيانات الموجودة في الذاكرة، يتم كتابة النتيجة في الذاكرة (يتم دعم الوصول إلى الكلمات فقط). 11: بعد جمع البيانات الموجودة في data0 مع بتات البيانات الموجودة في الذاكرة، اكتب النتيجة في الذاكرة (يتم دعم الوصول إلى الكلمات فقط). يقرأ: 00، 01، 10، 11: قراءة 0 مباشرة من الذاكرة. |
0 |
| [13:0] | احتياطي | RO | محجوز |
سجل التنفيذ التلقائي للأوامر المجردة (المجردة التلقائية)
يستخدم هذا السجل لتكوين وحدة التصحيح. عند قراءة وكتابة ملف progbux وبيانات وحدة التصحيح، يمكن تنفيذ الأمر المجرد مرة أخرى.
وصف هذا السجل هو كما يلي:
الجدول 7-10 تعريف السجل التلقائي المجرد
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:16] | برنامج تنفيذ تلقائي | RW | إذا تم تعيين بت، فإن القراءة والكتابة المقابلة لـ progbuFX ستؤدي إلى تنفيذ الأمر المجرد في سجل الأوامر مرة أخرى.
ملاحظة: تم تصميم سلسلة V3 بـ 8 بروس، المقابلة للبتات [23:16]. |
0 |
| [15:12] | احتياطي | RO | محجوز | 0 |
| [11:0] | بيانات التنفيذ التلقائي |
RW |
إذا تم تعيين بت على 1، فإن القراءة والكتابة المقابلة لسجل البيانات ستؤدي إلى تنفيذ الأمر المجرد في سجل الأوامر مرة أخرى.
ملاحظة: تم تصميم سلسلة V3 ببيانتين السجلات المقابلة للبتات [1:0]. |
0 |
سجل ذاكرة التخزين المؤقت للتعليمات (progbufx)
يستخدم هذا السجل لتخزين أي تعليمات، ونشر العملية المقابلة، بما في ذلك 8، والتي تحتاج إلى الاهتمام بالتنفيذ الأخير الذي يجب أن يكون "break" أو "c.ebreak".
الجدول 7-11 تعريف سجل progbuf
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | بروج بوف | RW | ترميز التعليمات لعمليات التخزين المؤقت، والتي
قد تتضمن تعليمات الضغط |
0 |
تسجيل حالة الإيقاف المؤقت (haltsum0)
يستخدم هذا السجل للإشارة إلى ما إذا كان المعالج الدقيق معلقًا أم لا. يشير كل بت إلى حالة تعليق المعالج الدقيق، وعندما يكون هناك نواة واحدة فقط، يتم استخدام البت الأدنى فقط في هذا السجل للإشارة إليها.
الجدول 7-12 تعريف سجل haltsum0
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:1] | محجوز | RO | محجوز | 0 |
| 0 | هالتسوم0 | RO | 0: يعمل المعالج الدقيق بشكل طبيعي
1: توقف المعالج الدقيق |
0 |
- بالإضافة إلى السجلات المذكورة أعلاه في وحدة التصحيح، تتضمن وظيفة التصحيح أيضًا بعض سجلات CSR، بشكل أساسي سجل التحكم في التصحيح وسجل الحالة dcsr ومؤشر تعليمات التصحيح dpc، والتي يتم وصفها بالتفصيل على النحو التالي.
- سجل التحكم في التصحيح والحالة (dcsr)
الجدول 7-13 تعريف سجل dcsr
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:28] | برنامج xdebugver | درو | 0000: لا يتم دعم التصحيح الخارجي 0100: دعم التصحيح الخارجي القياسي
1111: يتم دعم التصحيح الخارجي، لكنه لا يلبي المواصفات |
0×4 |
| [27:16] | محجوز | درو | محجوز | 0 |
| 15 | استراحة | DRW | 0: يتصرف أمر التوقف في وضع الجهاز كما هو موضح في الامتياز file
1: يمكن لأمر break في وضع الجهاز الدخول إلى وضع التصحيح |
0 |
| [14:13] | محجوز | درو | محجوز | 0 |
| 12 | انفصل |
DRW |
0: يتصرف أمر التوقف في وضع المستخدم كما هو موضح في الامتياز file
1: يمكن لأمر break في وضع المستخدم الدخول إلى وضع التصحيح |
0 |
| 11 | خطوة | DRW | 0: يتم تعطيل المقاطعات في عملية التصحيح بخطوة واحدة
1: تمكين المقاطعات في ظل تصحيح الأخطاء بخطوة واحدة |
0 |
| 10 | محجوز | درو | محجوز | 0 |
| 9 | توقف الوقت | DRW | 0: مؤقت النظام يعمل في وضع التصحيح
1: يتوقف مؤقت النظام في وضع التصحيح |
0 |
| [8:6] | سبب | درو | أسباب الدخول في التصحيح
001: إدخال التصحيح في شكل أمر break (الأولوية 3) 010: إدخال التصحيح في شكل وحدة تشغيل (الأولوية 4، الأعلى) 011: إدخال التصحيح في شكل طلب إيقاف مؤقت (الأولوية 1) 100: تصحيح الأخطاء في شكل تصحيح الأخطاء بخطوة واحدة (الأولوية 0، الأدنى) |
0 |
| 101: الدخول إلى وضع التصحيح مباشرة بعد إعادة تعيين المعالج الدقيق (الأولوية 2) آخرون: محجوز | ||||
| [5:3] | محجوز | درو | محجوز | 0 |
| 2 | خطوة | DRW | 0: إيقاف تشغيل تصحيح الأخطاء بخطوة واحدة
1: تمكين تصحيح الأخطاء بخطوة واحدة |
0 |
| [1:0] | السابق | DRW | وضع الامتياز 00: وضع المستخدم
01: وضع المشرف (غير مدعوم) 10: محجوز 11: وضع الآلة ملاحظة: قم بتسجيل الوضع المميز عند الدخول إلى وضع التصحيح، ويمكن للمصحح تعديل هذه القيمة لتعديل الوضع المميز عند الخروج من التصحيح |
0 |
مؤشر برنامج وضع التصحيح (DPC)
- يتم استخدام هذا السجل لتخزين عنوان التعليمات التالية التي سيتم تنفيذها بعد دخول المعالج الدقيق إلى وضع التصحيح، ويتم تحديث قيمته بقواعد مختلفة اعتمادًا على سبب الدخول في وضع التصحيح. يتم وصف سجل dpc بالتفصيل على النحو التالي.
الجدول 7-14 تعريفات سجل DPC
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | دي بي سي | DRW | عنوان التعليمات | 0 |
تظهر قواعد تحديث السجلات في الجدول التالي.
الجدول 7-15 قواعد تحديث dpc
| أدخل طريقة التصحيح | قواعد تحديث dpc |
| استراحة | عنوان تعليمات Ebreak |
| خطوة واحدة | عنوان التعليمات للتعليمات التالية للتعليمات الحالية |
| وحدة الزناد | غير مدعوم مؤقتًا |
| طلب ايقاف | عنوان التعليمات التالية التي سيتم تنفيذها عند الدخول إلى Debug |
واجهة التصحيح
- مختلف عن المعيار JTAG تم تعريف الواجهة بواسطة RISC-V، وتعتمد سلسلة المعالجات الدقيقة QingKe V3 على واجهة تصحيح تسلسلية 1- سلك/2 سلك وتتبع بروتوكول واجهة تصحيح WCH V1.0.
- تكون واجهة التصحيح مسؤولة عن الاتصال بين مضيف التصحيح ووحدة التصحيح وتنفذ عملية القراءة/الكتابة لمضيف التصحيح إلى سجلات وحدة التصحيح.
- صممت شركة WCH برنامج WCH_Link وقامت بفتح المصدر للمخططات والبرنامج الثنائي الخاص به files، والتي يمكن استخدامها لتصحيح أخطاء كافة المعالجات الدقيقة لهندسة RISC-V.
- راجع دليل بروتوكول تصحيح أخطاء WCH للتعرف على بروتوكولات واجهة التصحيح المحددة.
قائمة تسجيل المسؤولية الاجتماعية للشركات
- تعرف بنية RISC-V على عدد من سجلات التحكم والحالة (CSRs) للتحكم في حالة تشغيل المعالج الدقيق وتسجيلها.
- لقد تم تقديم بعض سجلات CSR في القسم السابق، وسيوضح هذا الفصل بالتفصيل سجلات CSR التي تم تنفيذها في معالجات QingKe V3 من السلسلة.
قائمة تسجيل المسؤولية الاجتماعية للشركات
الجدول 8-1 قائمة سجلات CSR للمعالجات الدقيقة
| يكتب | اسم | المسؤولية الاجتماعية للشركات عنوان | وصول | وصف |
| ريسك-V
معيار المسؤولية الاجتماعية للشركات |
مسيره | 0xF12 | صيانة وإصلاح | سجل رقم العمارة |
| ميمبيد | 0xF13 | صيانة وإصلاح | سجل ترقيم تنفيذ الأجهزة | |
| الحالة | 0×300 | MRW | سجل الحالة | |
| ميسا | 0×301 | MRW | سجل مجموعة التعليمات المادية | |
| ام تي في سي | 0×305 | MRW | سجل عنوان قاعدة الاستثناء | |
| مايكروسوفت سكراتش | 0×340 | MRW | وضع الآلةtagتسجيل الدخول | |
| لجنة حماية البيئة البحرية | 0×341 | MRW | سجل مؤشر برنامج الاستثناء | |
| سبب | 0×342 | MRW | سجل سبب الاستثناء | |
| متفال | 0×343 | MRW | سجل قيمة الاستثناء | |
| بى ام بى سى اف جى | 0x3A0+ي | MRW | سجل تكوين PMP | |
| بى ام بادر | 0x3B0+ي | MRW | سجل عناوين PMP | |
| اختيار | 0x7A0 | MRW | سجل اختيار المشغل التصحيحي | |
| ت داتا 1 | 0x7A1 | MRW | سجل بيانات مشغل التصحيح 1 | |
| ت داتا 2 | 0x7A2 | MRW | سجل بيانات مشغل التصحيح 2 | |
| دي سي إس آر | 0x7B0 | DRW | سجلات التحكم والحالة للتصحيح | |
| دي بي سي | 0x7B1 | DRW | سجل مؤشر برنامج وضع التصحيح | |
| دي سكراتش0 | 0x7B2 | DRW | وضع التصحيحtagتسجيل الدخول 0 | |
| دي سكراتش1 | 0x7B3 | DRW | وضع التصحيحtagتسجيل الدخول 1 | |
|
المسؤولية الاجتماعية للشركات التي يحددها البائع |
جنتنر | 0×800 | يو آر دبليو | سجل تمكين المقاطعة العالمي |
| انتسيسكر | 0×804 | يو آر دبليو | سجل التحكم في نظام المقاطعة | |
| كوريك اف جي ار | 0xBC0 | MRW | سجل تكوين المعالج الدقيق | |
| إينستكر | 0xBC1 | MRW | مقاطعة سجل التحكم المتداخل |
سجلات CSR القياسية RISC-V
- سجل رقم العمارة (مارسيد)
- هذا السجل هو سجل للقراءة فقط للإشارة إلى رقم بنية الأجهزة الحالية للمعالج الدقيق، والذي يتكون بشكل أساسي من رمز البائع، ورمز البنية، ورمز السلسلة، ورمز الإصدار. يتم تعريف كل منها على النحو التالي.
الجدول 8-2 تعريف سجل المارشيد
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| 31 | محجوز | صيانة وإصلاح | محجوز | 1 |
| [30:26] | بائع0 | صيانة وإصلاح | رمز الشركة المصنعة 0
تم إصلاحه برمز الحرف "W" |
0×17 |
| [25:21] | بائع1 | صيانة وإصلاح | رمز الشركة المصنعة1
تم إصلاحه إلى رمز الحرف "C" |
0×03 |
| [20:16] | بائع2 | صيانة وإصلاح | رمز الشركة المصنعة 2
تم إصلاحه برمز الحرف "H" |
0×08 |
| 15 | محجوز | صيانة وإصلاح | محجوز | 1 |
| [14:10] | قوس | صيانة وإصلاح | كود العمارة | 0×16 |
| تم تثبيت هندسة RISC-V على رمز الحرف "V" | ||||
| [9:5] | مسلسل | صيانة وإصلاح | رمز السلسلة
سلسلة QingKe V3، مثبتة على الرقم "3" |
0×03 |
| [4:0] | إصدار | صيانة وإصلاح | رمز الإصدار
يمكن أن يكون الإصدار "A" أو "B" أو "C" أو أحرف أخرى من الكود |
x |
رقم الشركة المصنعة ورقم الإصدار أبجديان، ورقم السلسلة رقمي. يظهر جدول ترميز الحروف في الجدول التالي.
الجدول 8-3 جدول الخرائط الأبجدية
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
- ومن بينها، المعالج الدقيق QingKe V3A، يسجل السجل القراءة مرة أخرى إلى 0.
سجل ترقيم تنفيذ الأجهزة (limpid)
- يتكون هذا السجل بشكل أساسي من رموز البائعين، حيث يتم تعريف كل منها على النحو التالي.
الجدول 8-4 تعريف السجل الشفاف
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| 31 | محجوز | صيانة وإصلاح | محجوز | 1 |
| [30:26] | بائع0 | صيانة وإصلاح | رمز الشركة المصنعة 0
تم إصلاحه برمز الحرف "W" |
0×17 |
| [25:21] | بائع1 | صيانة وإصلاح | رمز الشركة المصنعة1
تم إصلاحه إلى رمز الحرف "C" |
0×03 |
| [20:16] | بائع2 | صيانة وإصلاح | رمز الشركة المصنعة 2
تم إصلاحه برمز الحرف "H" |
0×08 |
| 15 | محجوز | صيانة وإصلاح | محجوز | 1 |
| [14:8] | محجوز | صيانة وإصلاح | محجوز | 0 |
| [7:4] | صغير | صيانة وإصلاح | رقم التخريب | 0xX |
| [3:0] | رئيسي | ام ار 0 | رقم الإصدار الرئيسي | 0xX |
- يعد هذا السجل قابلاً للقراءة في أي تنفيذ آلي، وفي معالج سلسلة QingKe V3A، يقرأ هذا السجل إلى الصفر.
سجل حالة وضع الماكينة (mstatus)
- لقد تم وصف هذا السجل جزئيًا في القسم السابق، ويتم وضع أفراده على النحو التالي.
الجدول 8-5 تعريف سجل الحالة
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:13] | محجوز | صيانة وإصلاح | محجوز | 0 |
| [12:11] | عضو مجلس النواب | MRW | الوضع المميز قبل الدخول في الاستراحة | 0 |
| [10:8] | محجوز | صيانة وإصلاح | محجوز | 0 |
| 7 | ام بي اي اي | MRW | تمكين حالة المقاطعة قبل الدخول في المقاطعة | 0 |
| [6:4] | محجوز | صيانة وإصلاح | محجوز | 0 |
| 3 | النثريات | MRW | تمكين مقاطعة وضع الآلة | 0 |
| [2:0] | محجوز | صيانة وإصلاح | محجوز | 0 |
- يتم استخدام حقل MPP لحفظ الوضع المميز قبل الدخول في الاستثناء أو المقاطعة ويتم استخدامه لاستعادة الوضع المميز بعد الخروج من الاستثناء أو المقاطعة. MIE هو بت تمكين المقاطعة العالمي، وعند الدخول في الاستثناء أو المقاطعة، يتم تحديث قيمة MPIE إلى قيمة MIE، ويجب ملاحظة أنه في معالجات QingKe V3، لن يتم تحديث MIE إلى 0 قبل المستوى الأخير من المقاطعات المتداخلة لضمان استمرار تنفيذ تعشيش المقاطعة في وضع الآلة. عند الخروج من الاستثناء أو المقاطعة، يعود المعالج الدقيق إلى وضع الآلة المحفوظ بواسطة MPP، ويتم استعادة MIE إلى قيمة MPIE.
- يدعم المعالج الدقيق QingKe V3 وضع الجهاز ووضع المستخدم، إذا كنت بحاجة إلى جعل المعالج الدقيق يعمل في وضع الجهاز فقط، فيمكنك ضبط MPP على 0x3 في تهيئة التمهيد fileأي أنه بعد العودة سيبقى دائمًا في وضع الجهاز.
سجل مجموعة التعليمات المادية (misa)
- يتم استخدام هذا السجل للإشارة إلى بنية المعالج الدقيق وملحقات مجموعة التعليمات المدعومة، والتي يتم وصف كل منها على النحو التالي.
الجدول 8-6 تعريف سجل ميسا
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:30] | مكس لارج | صيانة وإصلاح | طول الكلمة الآلية 1:32
2:64 3:128 |
1 |
| [29:26] | محجوز | صيانة وإصلاح | محجوز | 0 |
| [25:0] | الإضافات | صيانة وإصلاح | ملحقات مجموعة التعليمات | x |
- يتم استخدام MXL للإشارة إلى طول الكلمة في المعالج الدقيق، وQingKe V3 عبارة عن معالجات دقيقة 32 بت، والمجال ثابت على 1.
- يتم استخدام الامتدادات للإشارة إلى أن المعالج الدقيق يدعم تفاصيل مجموعة التعليمات الموسعة، ويشير كل منها إلى فئة من الامتدادات، ويظهر وصفها التفصيلي في الجدول التالي.
الجدول 8-7 تفاصيل تمديد مجموعة التعليمات
| قليل | اسم | وصف |
| 0 | A | الامتداد الذري |
| 1 | B | تم حجزه مؤقتًا لتمديد معالجة البتات |
| 2 | C | تمديد مضغوط |
| 3 | D | تمديد الفاصلة العائمة بدقة مزدوجة |
| 4 | E | قاعدة RV32E ISA |
| 5 | F | تمديد الفاصلة العائمة بدقة واحدة |
| 6 | G | توجد ملحقات قياسية إضافية |
| 7 | H | امتداد المشرف الافتراضي |
| 8 | I | قاعدة ISA RV32I/64I/128I |
| 9 | J | تم حجزه مؤقتًا لتمديد اللغات المترجمة ديناميكيًا |
| 10 | K | محجوز |
| 11 | L | تم حجزه مؤقتًا لتمديد الفاصلة العائمة العشرية |
| 12 | M | امتداد الضرب/القسمة الصحيح |
| 13 | N | دعم المقاطعات على مستوى المستخدم |
| 14 | O | محجوز |
| 15 | P | تم حجزه مؤقتًا لتمديد Packed-SIMD |
| 16 | Q | تمديد الفاصلة العائمة بدقة رباعية |
| 17 | R | محجوز |
| 18 | S | تم تنفيذ وضع المشرف |
| 19 | T | تم حجزها مؤقتًا لتمديد الذاكرة المعاملاتية |
| 20 | U | تم تنفيذ وضع المستخدم |
| 21 | V | محجوز مؤقتًا لتمديد المتجه |
| 22 | W | محجوز |
| 23 | X | توجد ملحقات غير قياسية |
| 24 | Y | محجوز |
| 25 | Z | محجوز |
- على سبيل المثالampبالنسبة لمعالج QingKe V3A، قيمة السجل هي 0x401001105، مما يعني أن بنية مجموعة التعليمات المدعومة هي RV32IMAC، ولديها تنفيذ وضع المستخدم.
سجل عنوان القاعدة لاستثناء وضع الآلة (mtvec)
- يتم استخدام هذا السجل لتخزين العنوان الأساسي لمعالج الاستثناء أو المقاطعة ويتم استخدام البتاتين السفليتين لتكوين الوضع وطريقة التعريف لجدول المتجه كما هو موضح في القسم 3.2.
وضع الآلةtagسجل الدخول (mscratch)
الجدول 8-8 تعريفات سجل mscratch
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | مايكروسوفت سكراتش | MRW | تخزين البيانات | 0 |
هذا السجل عبارة عن سجل قابل للقراءة والكتابة بـ 32 بت في وضع الجهاز لتخزين البيانات المؤقتة. على سبيل المثالampعند إدخال استثناء أو معالج مقاطعة، يتم تخزين مؤشر مكدس المستخدم SP في هذا السجل ويتم تعيين مؤشر مكدس المقاطعة إلى سجل SP. بعد الخروج من الاستثناء أو المقاطعة، قم باستعادة قيمة مؤشر مكدس المستخدم SP من البداية. أي أنه يمكن عزل مكدس المقاطعة ومكدس المستخدم.
سجل مؤشر برنامج استثناء وضع الآلة (الخريطة)
الجدول 8-9 تعريفات سجل mepc
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | ميبك | MRW | مؤشر إجراء الاستثناء | 0 |
- يتم استخدام هذا السجل لحفظ مؤشر البرنامج عند إدخال استثناء أو مقاطعة.
- يتم استخدامه لحفظ مؤشر تعليمات الكمبيوتر قبل إدخال استثناء عند إنشاء استثناء أو مقاطعة، ويتم استخدام mepc كعنوان إرجاع عند التعامل مع الاستثناء أو المقاطعة واستخدامه لإرجاع استثناء أو مقاطعة.
- ومع ذلك، فمن المهم أن نلاحظ أنه.
- عند حدوث استثناء، يتم تحديث mepc إلى قيمة PC للتعليمات التي تولد الاستثناء حاليًا.
- عند حدوث مقاطعة، يتم تحديث mepc إلى قيمة PC للتعليمات التالية.
- عندما تحتاج إلى إرجاع استثناء بعد معالجة الاستثناء، يجب الانتباه إلى تعديل قيمة mepc، ويمكن العثور على مزيد من التفاصيل في الفصل 2 الاستثناءات.
سجل سبب استثناء وضع الآلة (mcause)
الجدول 8-10 تعريف سجل السبب
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| 31 | مقاطعة | MRW | حقل إشارة المقاطعة 0: استثناء
1: الانقطاع |
0 |
| [30:0] | كود الاستثناء | MRW | بالنسبة لرموز الاستثناء، راجع الجدول 2-1 للحصول على التفاصيل | 0 |
- يستخدم هذا السجل بشكل أساسي لتخزين سبب الاستثناء أو رقم المقاطعة للمقاطعة. أعلى بت فيه هو حقل المقاطعة، والذي يستخدم للإشارة إلى ما إذا كان الحدث الحالي استثناءً أم مقاطعة.
- الجزء السفلي هو رمز الاستثناء، والذي يستخدم للإشارة إلى السبب المحدد. ويمكن العثور على تفاصيله في الفصل 2 الاستثناءات.
سجل قيمة استثناء وضع الآلة (mtval)
الجدول 8-11 تعريف سجل mtval
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | متفال | MRW | قيمة الاستثناء | 0 |
- يتم استخدام هذا السجل لحفظ القيمة التي تسببت في الاستثناء عند حدوث استثناء. للحصول على تفاصيل مثل قيمة ووقت تخزينها، يرجى الرجوع إلى الفصل 2 الاستثناءات.
سجل تكوين PMP (pmpcfg
- يستخدم هذا السجل بشكل أساسي لتكوين وحدة حماية الذاكرة المادية، ويتم استخدام كل 8 بتات من هذا السجل لتكوين حماية منطقة ما. يرجى الرجوع إلى الفصل 4 للحصول على التعريف التفصيلي.
سجل عناوين PMP (pmpaddr
- يستخدم هذا السجل بشكل أساسي لتكوين عنوان وحدة حماية الذاكرة المادية، التي تقوم بتشفير 32 بتة العلوية من عنوان مادي مكون من 34 بت. يرجى الرجوع إلى الفصل 4 لمعرفة طريقة التكوين المحددة.
سجل مؤشر برنامج وضع التصحيح (DPC)
- يتم استخدام هذا السجل لتخزين عنوان التعليمات التالية التي سيتم تنفيذها بعد دخول المعالج الدقيق
- يتم تحديث وضع التصحيح وقيمته بقواعد مختلفة حسب سبب الدخول إلى وضع التصحيح. راجع القسم 6.1 للحصول على وصف تفصيلي.
سجل اختيار مشغل التصحيح (select)
- إنه صالح فقط للمعالجات الدقيقة التي تدعم نقاط توقف الأجهزة وتدعم نقاط توقف 4 قنوات على الأكثر، وبتاتها السفلية 2 صالحة.
- عند تكوين نقطة توقف كل قناة، يجب عليك تحديد القناة المقابلة من خلال هذا السجل قبل التكوين.
الجدول 8-12 حدد تعريف السجل
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:2] | محجوز | صيانة وإصلاح | محجوز | 0 |
| [1:0] |
يختار |
MRW |
تم تكوين سجل اختيار قناة نقطة التوقف، أي بعد تحديد القناة المقابلة، يمكن تشغيل سجلات tdata1 وtdata2 لتكوين نقطة توقف
معلومة. |
X |
سجل بيانات مشغل التصحيح 1(tdata1)
لا ينطبق هذا إلا على المعالجات الدقيقة التي تدعم نقاط توقف الأجهزة. تدعم المعالجات الدقيقة فقط نقاط توقف عناوين التعليمات وعناوين البيانات، حيث يكون نوع البت في سجل tdata1 قيمة ثابتة 2، وتتوافق البتات الأخرى مع تعريف التحكم في معيار التصحيح.
الجدول 8-13 تعريف سجل tdata1
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:28] | يكتب | صيانة وإصلاح | تعريف نوع نقطة التوقف، نوع التحكم. | 0×2 |
|
27 |
دمود |
صيانة وإصلاح |
0: يمكن تعديل السجلات ذات الصلة بالقلاب في كل من وضع الجهاز ووضع التصحيح؛
1: يمكن فقط لوضع التصحيح تعديل السجلات ذات الصلة بالقلاب. |
1 |
| [26:21] |
ماسك ماكس |
صيانة وإصلاح |
عندما يكون MATCH=1، يُسمح بأقصى نطاق طاقة أسيّة للمطابقة، أي أن أقصى نطاق مطابقة مسموح به هو 231 بايت. |
0x1F |
| [20:13] | محجوز | صيانة وإصلاح | محجوز | 0 |
|
12 |
فعل |
MRW |
ضبط وضع المعالجة عند تشغيل نقطة توقف:
0: عند التشغيل، أدخل نقطة التوقف وأعد استدعاء المقاطعة؛ 1: أدخل وضع التصحيح عند تشغيله. |
0 |
| [11:8] | محجوز | صيانة وإصلاح | محجوز | 0 |
|
7 |
مباراة |
MRW |
مطابقة تكوين السياسة:
0: تطابق عندما تكون قيمة المشغل مساوية لـ TDATA2؛ 1: تطابق قيمة المشغل البت العالي m في TDATA2، حيث m = 31–n، وn هو أول اقتباس 0 في TDATA2 (بدءًا من البت المنخفض). |
0 |
|
6 |
M |
MRW |
تمكين Flip-Flop في الوضع M:
0: تعطيل المشغل في الوضع M؛ 1: تمكين المشغل في الوضع M. |
0 |
| [5:4] | محجوز | صيانة وإصلاح | محجوز | 0 |
|
3 |
U |
MRW |
تمكين المشغل في وضع U:
0: تعطيل المشغل في وضع U؛ 1: تمكين المشغل في وضع U. |
0 |
|
2 |
ينفذ |
MRW |
تمكين تشغيل عنوان قراءة التعليمات: 0: تعطيل؛
1: تمكين. |
0 |
|
1 |
محل |
MRW |
تم تمكين مشغل عنوان كتابة البيانات: 0: تعطيل؛
1: تمكين. |
0 |
|
0 |
حمولة |
MRW |
تم تمكين مشغل عنوان قراءة البيانات: 0: تعطيل؛
1: تمكين. |
0 |
سجل بيانات مشغل التصحيح 2(tdata2)
إنه صالح فقط للمعالجات الدقيقة التي تدعم نقاط توقف الأجهزة ويُستخدم لحفظ القيمة المطابقة للمشغل.
الجدول 8-14 تعريف سجل tdata2
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | تي داتا 2 | MRW | يستخدم لحفظ القيم المطابقة. | X |
سجل التحكم في التصحيح والحالة (dcsr)
يتم استخدام هذا السجل للتحكم في حالة تشغيل وضع التصحيح وتسجيلها. راجع القسم 7.1 للحصول على التفاصيل.
مؤشر برنامج وضع التصحيح (DPC)
يستخدم هذا السجل لتخزين عنوان التعليمات التالية التي سيتم تنفيذها بعد دخول المعالج الدقيق إلى وضع التصحيح، وتختلف قيمته وفقًا لأسباب الدخول إلى وضع التصحيح، كما تختلف قواعد التحديث أيضًا. راجع القسم 7.1 للحصول على وصف تفصيلي.
وضع التصحيحtagسجل ing (dscratch0-1)
يتم استخدام هذه المجموعة من السجلات للتخزين المؤقت للبيانات في وضع التصحيح.
الجدول 8-15 تعريفات سجل dscratch0-1
| قليل | اسم | وصول | وصف | قيمة إعادة التعيين |
| [31:0] | دي سكراتش | DRW | بيانات وضع التصحيحtagجي القيمة | 0 |
سجل المسؤولية الاجتماعية للشركات المحدد من قبل المستخدم
سجل تمكين المقاطعة العالمي في وضع المستخدم (gintenr)
- يستخدم هذا السجل للتحكم في تمكين وقناع المقاطعة العالمية. يمكن التحكم في تمكين وقناع المقاطعة العالمية في وضع الآلة من خلال بتات MIE وMPIE في الحالة، ولكن لا يمكن تشغيل هذا السجل في وضع المستخدم.
- في حين أن المقاطعة العالمية تمكن السجل gintenr من تعيين MIE وMPIE في الحالة.
- في وضع المستخدم، يمكن استخدام القصد لتعيين ومسح MIE وMPIE، كما هو موضح في القسم 3.2 للحصول على التفاصيل.
ملحوظة
- لا تتضمن المقاطعات العالمية المقاطعات غير المقنعة NMI والاستثناءات.
سجل التحكم في نظام المقاطعة (intsyscr)
يتم استخدام هذا السجل بشكل أساسي لتكوين عمق تعشيش المقاطعة، والضغط على مكدس الأجهزة، والوظائف الأخرى ذات الصلة، كما هو موضح في القسم 3.2 للحصول على التفاصيل.
سجل تكوين المعالج الدقيق (corecfgr)
يتم استخدام هذا السجل للتحكم فيما إذا كان من المسموح به مقاطعة NMI بعد تجاوز المقاطعة الحد الأقصى وما إذا كان طلب المقاطعة يتم مسحه عند تنفيذ تعليمات السياج. يرجى الرجوع إلى القسم 3.2 للتعريف المحدد.
مقاطعة سجل التحكم المتداخل (inestcr)
يستخدم هذا السجل للإشارة إلى حالة التعشيش للمقاطعة وما إذا كانت تفيض أم لا، وللتحكم في الحد الأقصى لمستوى التعشيش. يرجى الرجوع إلى القسم 3.2 للتعرف على التعريف المحدد.
المستندات / الموارد
![]() |
المعالج الدقيق WH V3 [بي دي اف] دليل المستخدم المعالج الدقيق V3، V3، المعالج الدقيق |





