WH V3 माइक्रोप्रोसेसर
विशेष विवरण
- माइक्रोप्रोसेसर मॉडल: किंगकेवी3
- संस्करण: वी1.2
- आईएसए विशेषताएं:
- पाइपलाइन एफपीयू
- शाखा भविष्यवाणी
- सहायता बाधित करें
- एचपीई भौतिक मेमोरी संरक्षण (पीएमपी)
- कम बिजली की खपत मोड
- विस्तारित निर्देश सेट डीबग
उत्पाद उपयोग निर्देश
ऊपरview किंगके वी3 माइक्रोप्रोसेसर
किंगके वी3 सीरीज माइक्रोप्रोसेसरों में वी3ए, वी3बी और वी3सी मॉडल शामिल हैं। प्रत्येक मॉडल में उसके अनुप्रयोग के आधार पर विशिष्ट विशेषताएं और अंतर होते हैं।
निर्देश सेट
RV32I निर्देश सेट में x32 से x0 तक 31 रजिस्टर सेट शामिल हैं। 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 श्रृंखला माइक्रोप्रोसेसर मशीन मोड और सुपरवाइज़र मोड का समर्थन करते हैं।
अक्सर पूछे जाने वाले प्रश्नों
प्रश्न: किंगके वी3 श्रृंखला माइक्रोप्रोसेसरों के विभिन्न मॉडल कौन से हैं?
A: किंगके वी3 श्रृंखला में वी3ए, वी3बी और वी3सी मॉडल शामिल हैं, जिनमें से प्रत्येक में विशिष्ट विशेषताएं और अंतर हैं जिनका विवरण उपयोगकर्ता मैनुअल में दिया गया है।
प्रश्न: RV32I निर्देश सेट में कितने रजिस्टर सेट उपलब्ध हैं?
A: RV32I अनुदेश सेट x32 से x0 तक 31 रजिस्टर सेट प्रदान करता है।
प्रश्न: किंगके वी3 माइक्रोप्रोसेसर द्वारा कौन से विशेषाधिकार प्राप्त मोड समर्थित हैं?
A: किंगके वी3 श्रृंखला माइक्रोप्रोसेसर RISC-V आर्किटेक्चर के भाग के रूप में मशीन मोड और सुपरवाइजर मोड का समर्थन करते हैं।
ऊपरview
किंगके वी3 सीरीज माइक्रोप्रोसेसर मानक RISC-V निर्देश सेट आर्किटेक्चर पर आधारित स्व-विकसित 32-बिट सामान्य प्रयोजन MCU माइक्रोप्रोसेसर हैं। इस सीरीज में V3A, V3B और V3C शामिल हैं, जिनमें से V3A RV32IMAC मानक निर्देश सेट एक्सटेंशन का समर्थन करता है और V3B/C RV32IMCB मानक निर्देश सेट एक्सटेंशन और अनुकूलित निर्देश सेट एक्सटेंशन XW का समर्थन करता है। ये दोनों ही हार्डवेयर प्रेशर स्टैक (HPE), टेबल-फ्री इंटरप्ट (VTF), स्ट्रीमलाइन्ड 1- और 2-वायर डिबगिंग इंटरफेस, "WFE" निर्देश और अन्य विशेष सुविधाओं के अलावा सिंगल-साइकिल मल्टीप्लिकेशन और हार्डवेयर डिवीजन का समर्थन करते हैं। इसके अलावा, यह हार्डवेयर प्रोलॉग/एपिलॉग (HPE), वेक्टर टेबल फ्री (VTF), स्ट्रीमलाइन्ड 1-/2-वायर डिबगिंग इंटरफेस और "WFE" निर्देश के लिए समर्थन का भी समर्थन करता है।
विशेषताएँ
विशेषताएँ | विवरण |
एक है | आरवी32आईएम[ए]सी[बी] |
पाइपलाइन | 3 |
एफपीयू | समर्थित नहीं |
शाखा भविष्यवाणी | स्थैतिक शाखा पूर्वानुमान |
रुकावट डालना | अपवादों सहित कुल 256 व्यवधानों का समर्थन करता है, और VTF का समर्थन करता है |
एचपीई | HPE के 2 स्तरों का समर्थन करें |
भौतिक मेमोरी संरक्षण (पीएमपी) | का समर्थन किया |
कम बिजली की खपत मोड | स्लीप और डीप स्लीप मोड का समर्थन करें, और WFI और WFE स्लीप विधियों का समर्थन करें |
विस्तारित निर्देश सेट | का समर्थन किया |
डिबग | 1/2-वायर SDI, मानक RISC-V डिबग |
ऊपरview
किंगके वी3 श्रृंखला माइक्रोप्रोसेसरों में वी3ए, वी3बी और वी3सी शामिल हैं, अनुप्रयोग के अनुसार श्रृंखला के बीच कुछ अंतर हैं, विशिष्ट अंतर तालिका 1-1 में विस्तृत हैं।
तालिका 1-1 ओवरview किंगके वी3 माइक्रोप्रोसेसर
विशेषता नमूना | एक है | एचपीई स्तरों की संख्या | व्यवधान घोंसला करने की क्रिया की संख्या स्तरों | वीटीएफ चैनलों की संख्या | पाइपलाइन | वेक्टर टेबल मोड | विस्तारित अनुदेश (एक्सडब्ल्यू) | स्मृति सुरक्षा क्षेत्रों की संख्या |
वी3ए | आरवी32आईएमएसी | 2 | 2 | 4 | 3 | अनुदेश | × | × |
V3B | आरवी32आईएमसीबी | 2 | 2 | 4 | 3 | पता/ निर्देश | √ | × |
वी3सी | आरवी32आईएमसीबी | 2 | 2 | 4 | 3 | पता/ निर्देश | √ | 4 |
टिप्पणी: ओएस कार्य स्विचिंग आम तौर पर स्टैक पुश का उपयोग करता है, जो स्तरों की संख्या तक सीमित नहीं है
निर्देश सेट
- किंगके वी3 सीरीज माइक्रोप्रोसेसर मानक RISC-V इंस्ट्रक्शन सेट आर्किटेक्चर (ISA) का पालन करते हैं। मानक का विस्तृत दस्तावेज़ीकरण RISC-V इंटरनेशनल पर "RISC-V इंस्ट्रक्शन सेट मैनुअल, वॉल्यूम I: यूजर-लेवल ISA, डॉक्यूमेंट वर्जन 2.2" में पाया जा सकता है। webRISC-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 कंपाइलर या उसके द्वारा प्रदान किए गए टूलचेन पर आधारित होना चाहिए;
- V3B एक डबलवर्ड (32बिट) से एक शब्द (64बिट) निर्देश निकालने और एक गुणन परिणाम (32बिट) से एक शब्द (64बिट) निर्देश निकालने का समर्थन करता है। विशिष्ट उपयोग विधि लाइब्रेरी फ़ंक्शन को संदर्भित कर सकती है और MRS कंपाइलर या इसके द्वारा प्रदान किए गए टूलचेन के साथ सहयोग कर सकती है;
- V3B/C मेमोरी कॉपी निर्देश का समर्थन करता है। विशिष्ट उपयोग के लिए, कृपया लाइब्रेरी फ़ंक्शन देखें और MRS कंपाइलर या इसके टूलचेन के साथ सहयोग करें।
रजिस्टर सेट
RV32I में x32-x0 तक 31 रजिस्टर सेट हैं। V3 सीरीज “F” एक्सटेंशन का समर्थन नहीं करती है, यानी कोई फ़्लोटिंग-पॉइंट रजिस्टर सेट नहीं है। RV32 में, प्रत्येक रजिस्टर 32 बिट्स का होता है। नीचे दी गई तालिका 1-2 में RV32I के रजिस्टर और उनके विवरण सूचीबद्ध हैं।
तालिका 1-2 RISC-V रजिस्टर
पंजीकरण करवाना | एबीआई नाम | विवरण | स्तोरेर |
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 | रजिस्टर सहेजें | कॉल प्राप्त करने वाला |
एक्स28-31 | टी3-6 | अस्थायी रजिस्टर | कोलर |
उपरोक्त तालिका में कॉलर विशेषता का अर्थ है कि कॉल की गई प्रक्रिया रजिस्टर मान को सहेजती नहीं है, और कॉली विशेषता का अर्थ है कि कॉल की गई प्रक्रिया रजिस्टर को सहेजती है।
विशेषाधिकार मोड
- मानक RISC-V आर्किटेक्चर में तीन विशेषाधिकार प्राप्त मोड शामिल हैं: मशीन मोड, पर्यवेक्षक मोड और उपयोगकर्ता मोड, जैसा कि नीचे तालिका 1-3 में दिखाया गया है।
- मशीन मोड अनिवार्य है, और अन्य मोड वैकल्पिक हैं। विस्तृत जानकारी के लिए, आप RISC-V इंस्ट्रक्शन सेट मैनुअल वॉल्यूम II: प्रिविलेज्ड आर्किटेक्चर” देख सकते हैं, जिसे RISC-V इंटरनेशनल से मुफ्त में डाउनलोड किया जा सकता है। webसाइट।
तालिका 1-3 RISC-V आर्किटेक्चर विशेषाधिकार मोड
कोड | नाम | लघुरूप |
0बी00 | उपयोगकर्ता मोड | U |
0बी01 | पर्यवेक्षक मॉडल | S |
0बी10 | सुरक्षित | सुरक्षित |
0बी11 | मशीन मोड | M |
- किंगके वी3 श्रृंखला माइक्रोप्रोसेसर इनमें से दो विशेषाधिकार प्राप्त मोड का समर्थन करते हैं।
मशीन मोड
- मशीन मोड में सर्वोच्च प्राधिकार होता है, इस मोड में प्रोग्राम सभी नियंत्रण और स्थिति रजिस्टर (सीएसआर) तक पहुंच सकता है, लेकिन सभी भौतिक पता क्षेत्रों तक भी पहुंच सकता है।
- पावर-अप डिफ़ॉल्ट मशीन मोड में होता है, जब mret (मशीन मोड रिटर्न इंस्ट्रक्शन) का निष्पादन MPP बिट में CSR रजिस्टर स्थिति (मशीन मोड स्थिति रजिस्टर) के अनुसार वापस लौटता है, यदि MPP = 0b00 है, तो मशीन मोड से उपयोगकर्ता मोड में बाहर निकलें, MPP = 0b11, फिर मशीन मोड को बनाए रखना जारी रखें।
उपयोगकर्ता मोड
- उपयोगकर्ता मोड में सबसे कम विशेषाधिकार होता है, और इस मोड में केवल सीमित CSR रजिस्टरों तक ही पहुँचा जा सकता है। जब कोई अपवाद या रुकावट होती है, तो माइक्रोप्रोसेसर अपवादों और रुकावटों को संभालने के लिए उपयोगकर्ता मोड से मशीन मोड में चला जाता है।
सीएसआर रजिस्टर
माइक्रोप्रोसेसर की ऑपरेटिंग स्थिति को नियंत्रित करने और रिकॉर्ड करने के लिए RISC-V आर्किटेक्चर में CSR रजिस्टरों की एक श्रृंखला परिभाषित की गई है। इन CSR को आंतरिक समर्पित 4096-बिट एड्रेस कोडिंग स्पेस का उपयोग करके 12 रजिस्टरों द्वारा बढ़ाया जा सकता है। और इस रजिस्टर की पढ़ने/लिखने की अनुमति को परिभाषित करने के लिए उच्च दो CSR[11:10] का उपयोग करें, पढ़ने/लिखने की अनुमति के लिए 0b00, 0b01, 0b10 और केवल पढ़ने के लिए 0b11 का उपयोग करें। इस रजिस्टर तक पहुँचने वाले सबसे कम विशेषाधिकार स्तर को परिभाषित करने के लिए दो बिट्स CSR[9:8] का उपयोग करें, और मान तालिका 1-3 में परिभाषित विशेषाधिकार मोड से मेल खाता है। किंगके वी3 माइक्रोप्रोसेसर में कार्यान्वित CSR रजिस्टरों का विवरण अध्याय 8 में दिया गया है।
अपवाद
अपवाद तंत्र, जो "असामान्य संचालन घटनाओं" को रोकने और संभालने के लिए एक तंत्र है। किंगके वी3 श्रृंखला माइक्रोप्रोसेसर एक अपवाद प्रतिक्रिया प्रणाली से लैस हैं जो रुकावटों सहित 256 अपवादों को संभाल सकता है। जब कोई अपवाद या रुकावट होती है, तो माइक्रोप्रोसेसर जल्दी से प्रतिक्रिया कर सकता है और अपवाद और रुकावट की घटनाओं को संभाल सकता है।
अपवाद प्रकार
माइक्रोप्रोसेसर का हार्डवेयर व्यवहार एक जैसा होता है, चाहे अपवाद हो या रुकावट। माइक्रोप्रोसेसर वर्तमान प्रोग्राम को निलंबित कर देता है, अपवाद या रुकावट हैंडलर पर चला जाता है, और प्रसंस्करण पूरा होने पर पहले से निलंबित प्रोग्राम पर वापस लौटता है। मोटे तौर पर कहें तो रुकावटें भी अपवादों का हिस्सा हैं। क्या वास्तव में वर्तमान घटना एक रुकावट है या अपवाद, इस पर निर्भर नहीं किया जा सकता है कि क्या यह वास्तव में एक रुकावट है या अपवाद है। viewमशीन मोड अपवाद कारण रजिस्टर कारण के माध्यम से किया जाता है। mcause[31] इंटरप्ट फ़ील्ड है, जिसका उपयोग यह इंगित करने के लिए किया जाता है कि अपवाद का कारण इंटरप्ट है या अपवाद। mcause[31]=1 का अर्थ है इंटरप्ट, mcause[31]=0 का अर्थ है अपवाद। mcause[30:0] अपवाद कोड है, जिसका उपयोग अपवाद या इंटरप्ट नंबर के विशिष्ट कारण को इंगित करने के लिए किया जाता है, जैसा कि निम्न तालिका में दिखाया गया है।
तालिका 2-1 V3 माइक्रोप्रोसेसर अपवाद कोड
रुकावट डालना | अपवाद कोड | तुल्यकालिक / अतुल्यकालिक | अपवाद का कारण |
1 | 0-1 | – | सुरक्षित |
1 | 2 | सटीक अतुल्यकालिक | एनएमआई व्यवधान |
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 | एक समय का | स्टोर/एएमओ निर्देश एक्सेस पता मिसअलाइनमेंट |
0 | 7 | गैर-सटीक अतुल्यकालिक | स्टोर/AMO कमांड एक्सेस त्रुटि |
0 | 8 | एक समय का | उपयोगकर्ता मोड में पर्यावरण कॉल |
0 | 11 | एक समय का | मशीन मोड में पर्यावरण कॉल |
- तालिका में "सिंक्रोनस" का अर्थ है कि एक निर्देश ठीक उसी स्थान पर स्थित हो सकता है जहाँ इसे निष्पादित किया जाता है, जैसे कि ब्रेक या कॉल निर्देश, और उस निर्देश का प्रत्येक निष्पादन एक अपवाद को ट्रिगर करेगा। "एसिंक्रोनस" का अर्थ है कि किसी निर्देश को सटीक रूप से पहचानना संभव नहीं है, और अपवाद होने पर हर बार निर्देश पीसी मान अलग हो सकता है। "सटीक एसिंक्रोनस" का अर्थ है कि अपवाद किसी निर्देश की सीमा पर बिल्कुल स्थित हो सकता है, यानी, निर्देश के निष्पादन के बाद की स्थिति, जैसे कि बाहरी रुकावट। "गैर-सटीक एसिंक्रोनस" का अर्थ है कि किसी निर्देश की सीमा को ठीक से स्थित नहीं किया जा सकता है, और हो सकता है कि निर्देश के निष्पादन के बीच में रुकावट आने के बाद की स्थिति, जैसे कि मेमोरी एक्सेस त्रुटि।
- मेमोरी तक पहुंच में समय लगता है, और माइक्रोप्रोसेसर आमतौर पर मेमोरी तक पहुंचते समय पहुंच के अंत की प्रतीक्षा नहीं करता है, बल्कि निर्देश को निष्पादित करना जारी रखता है, जब एक्सेस त्रुटि अपवाद फिर से होता है, तो माइक्रोप्रोसेसर पहले से ही बाद के निर्देशों को निष्पादित कर चुका होता है, और इसे ठीक से स्थित नहीं किया जा सकता है।
अपवाद दर्ज करना
जब प्रोग्राम सामान्य ऑपरेशन की प्रक्रिया में होता है, तो किसी कारण से अपवाद या व्यवधान उत्पन्न होता है। इस बिंदु पर माइक्रोप्रोसेसर के हार्डवेयर व्यवहार को निम्नानुसार संक्षेपित किया जा सकता है।
- वर्तमान प्रोग्राम प्रवाह को निलंबित करें और अपवाद या बाधा हैंडलिंग कार्यों के निष्पादन के लिए आगे बढ़ें। अपवाद या बाधा फ़ंक्शन का प्रविष्टि आधार पता और एड्रेसिंग मोड अपवाद प्रविष्टि आधार पता रजिस्टर mtvec द्वारा परिभाषित किया गया है। mtvec [31: 2] अपवाद या बाधा फ़ंक्शन का आधार पता परिभाषित करता है। mtvec [1: 0] हैंडलर फ़ंक्शन के एड्रेसिंग मोड को परिभाषित करता है। जब mtvec [1: 0] = 0, सभी अपवाद और रुकावटें एक एकीकृत प्रविष्टि का उपयोग करती हैं, यानी, जब कोई अपवाद या रुकावट होती है, तो यह mtvec [31: 2] में बदल जाता है जो निष्पादित करने के लिए आधार पता परिभाषित करता है। जब mtvec [1: 0] = 1, अपवाद और रुकावटें वेक्टर टेबल मोड का उपयोग करती हैं, यानी, प्रत्येक अपवाद और रुकावट को क्रमांकित किया जाता है, और पता बाधा संख्या * 4 के अनुसार ऑफसेट होता है इंटरप्ट वेक्टर तालिका में इंटरप्ट हैंडलर फ़ंक्शन पर जाने के लिए निर्देश होता है, या यह अन्य निर्देश भी हो सकते हैं।
- सीएसआर रजिस्टर अपडेट करें
- जब कोई अपवाद या व्यवधान प्रविष्ट होता है, तो माइक्रोप्रोसेसर स्वचालित रूप से प्रासंगिक CSR रजिस्टरों को अद्यतन करता है, जिसमें मशीन मोड अपवाद कारण रजिस्टर mcause, मशीन मोड अपवाद सूचक रजिस्टर mepc, मशीन मोड अपवाद मान रजिस्टर metal, तथा मशीन मोड स्थिति रजिस्टर status सम्मिलित हैं।
mcause अपडेट करें
जैसा कि पहले उल्लेख किया गया है, अपवाद या व्यवधान दर्ज करने के बाद, इसका मान वर्तमान अपवाद प्रकार या व्यवधान संख्या को दर्शाता है, और सॉफ्टवेयर अपवाद के कारण की जांच करने या व्यवधान के स्रोत का निर्धारण करने के लिए इस रजिस्टर मान को पढ़ सकता है, जैसा कि तालिका 2-1 में विस्तृत रूप से बताया गया है।
mepc अपडेट करें
- किसी अपवाद या व्यवधान से बाहर निकलने के बाद माइक्रोप्रोसेसर के रिटर्न एड्रेस की मानक परिभाषा mepc में संग्रहीत की जाती है।
- इसलिए जब कोई अपवाद या व्यवधान उत्पन्न होता है, तो हार्डवेयर स्वचालित रूप से mepc मान को अपवाद के सामने आने पर वर्तमान अनुदेश PC मान में अद्यतन कर देता है, या व्यवधान से पहले अगले पूर्व-निष्पादित अनुदेश PC मान में अद्यतन कर देता है।
- अपवाद या व्यवधान के संसाधित होने के बाद, माइक्रोप्रोसेसर निष्पादन जारी रखने के लिए व्यवधान के स्थान पर वापस लौटने हेतु इसके सहेजे गए मान को रिटर्न एड्रेस के रूप में उपयोग करता है।
- हालाँकि, यह ध्यान देने योग्य है कि.
- एमईपीसी एक पठनीय और लिखने योग्य रजिस्टर है, और सॉफ्टवेयर रिटर्न के बाद चल रहे पीसी पॉइंटर के स्थान को संशोधित करने के लिए मान को भी संशोधित कर सकता है।
- जब कोई व्यवधान उत्पन्न होता है, अर्थात, जब अपवाद कारण रजिस्टर mcause[31]=1 होता है, तो मैप्स का मान व्यवधान के समय अगले अप्रयुक्त निर्देश के पीसी मान में अद्यतन किया जाता है।
- जब कोई अपवाद होता है, तो अपवाद के कारण रजिस्टर mcause[31]=0 होने पर मैप्स का मान वर्तमान अपवाद के निर्देश PC मान में अपडेट हो जाता है। इसलिए इस समय जब अपवाद वापस आता है, अगर हम mepc के मान का उपयोग करके सीधे वापस लौटते हैं, तो हम उस निर्देश को निष्पादित करना जारी रखते हैं जिसने पहले अपवाद उत्पन्न किया था, और इस समय, हम अपवाद दर्ज करना जारी रखेंगे। आम तौर पर, अपवाद को संभालने के बाद, हम mepc के मान को अगले अप्रकाशित निर्देश के मान में संशोधित कर सकते हैं और फिर वापस लौट सकते हैं। उदाहरण के लिएampइसलिए, यदि हम कॉल/ब्रेक के कारण अपवाद उत्पन्न करते हैं, तो अपवाद को संभालने के बाद, चूंकि रिकॉल/ब्रेक (c.ebreak 2 बाइट्स है) एक 4-बाइट निर्देश है, हमें केवल सॉफ्टवेयर को mepc के मान को mepc+4 (c.ebreak mepc+2 है) में संशोधित करने और फिर वापस करने की आवश्यकता है।
mtval अपडेट करें
जब अपवाद और व्यवधान दर्ज किए जाते हैं, तो हार्डवेयर स्वचालित रूप से mtval का मान अपडेट कर देगा, जो अपवाद का कारण बनने वाला मान है। मान आमतौर पर होता है।
- यदि कोई अपवाद मेमोरी एक्सेस के कारण उत्पन्न होता है, तो हार्डवेयर अपवाद के समय मेमोरी एक्सेस का पता mtval में संग्रहीत कर देगा।
- यदि अपवाद किसी अवैध निर्देश के कारण उत्पन्न होता है, तो हार्डवेयर निर्देश के निर्देश कोड को mtval में संग्रहीत कर देगा।
- यदि अपवाद हार्डवेयर ब्रेकपॉइंट के कारण उत्पन्न होता है, तो हार्डवेयर ब्रेकपॉइंट पर PC मान को mtval में संग्रहीत करेगा।
- अन्य अपवादों के लिए, हार्डवेयर mtval का मान 0 पर सेट करता है, जैसे कि break, कॉल निर्देश के कारण उत्पन्न अपवाद।
- इंटरप्ट में प्रवेश करते समय, हार्डवेयर mtval का मान 0 पर सेट कर देता है।
mस्थिति अद्यतन करें
अपवाद और व्यवधान दर्ज करने पर, हार्डवेयर mstatus में कुछ बिट्स को अद्यतन करता है।
- अपवाद या व्यवधान दर्ज करने से पहले MPIE को MIE मान पर अद्यतन किया जाता है, तथा अपवाद और व्यवधान समाप्त होने के बाद MPIE का उपयोग MIE को पुनर्स्थापित करने के लिए किया जाता है।
- अपवादों और व्यवधानों को दर्ज करने से पहले MPP को विशेषाधिकार प्राप्त मोड में अद्यतन किया जाता है, और अपवादों और व्यवधानों के समाप्त होने के बाद, पिछले विशेषाधिकार प्राप्त मोड को पुनर्स्थापित करने के लिए MPP का उपयोग किया जाता है।
- किंगके वी3 माइक्रोप्रोसेसर मशीन मोड में इंटरप्ट नेस्टिंग का समर्थन करता है, और अपवादों और इंटरप्ट्स को दर्ज करने के बाद MIE को साफ़ नहीं किया जाएगा।
माइक्रोप्रोसेसर विशेषाधिकार मोड अद्यतन करें
- जब अपवाद और व्यवधान उत्पन्न होते हैं, तो माइक्रोप्रोसेसर का विशेषाधिकार प्राप्त मोड मशीन मोड में अद्यतन हो जाता है।
अपवाद हैंडलिंग फ़ंक्शन
- अपवाद या व्यवधान दर्ज करने पर, माइक्रोप्रोसेसर mtvec रजिस्टर द्वारा परिभाषित पते और मोड से प्रोग्राम निष्पादित करता है। एकीकृत प्रविष्टि का उपयोग करते समय, माइक्रोप्रोसेसर mtvec[31] के मान के आधार पर mtvec[2:1] द्वारा परिभाषित आधार पते से जंप निर्देश लेता है, या अपवाद और व्यवधान हैंडलिंग फ़ंक्शन प्रविष्टि पता प्राप्त करता है और इसके बजाय इसे निष्पादित करने के लिए जाता है। इस समय, अपवाद और व्यवधान हैंडलिंग फ़ंक्शन यह निर्धारित कर सकता है कि कारण mcause[31] के मान के आधार पर अपवाद है या व्यवधान, और अपवाद या संबंधित व्यवधान के प्रकार और कारण को अपवाद कोड द्वारा आंका जा सकता है और तदनुसार संभाला जा सकता है।
- ऑफसेट के लिए आधार पता + इंटरप्ट संख्या *4 का उपयोग करते समय, हार्डवेयर स्वचालित रूप से इंटरप्ट संख्या के आधार पर अपवाद या इंटरप्ट फ़ंक्शन का प्रवेश पता प्राप्त करने के लिए वेक्टर तालिका पर जाता है और इसे निष्पादित करने के लिए कूदता है।
अपवाद निकास
- अपवाद या व्यवधान हैंडलर पूरा होने के बाद, सेवा कार्यक्रम से बाहर निकलना आवश्यक है। अपवाद और व्यवधान दर्ज करने के बाद, माइक्रोप्रोसेसर उपयोगकर्ता मोड से मशीन मोड में प्रवेश करता है, और अपवाद और व्यवधानों का प्रसंस्करण भी मशीन मोड में पूरा होता है। जब अपवाद और व्यवधान से बाहर निकलना आवश्यक होता है, तो वापस लौटने के लिए mret निर्देश का उपयोग करना आवश्यक होता है। इस समय, माइक्रोप्रोसेसर हार्डवेयर स्वचालित रूप से निम्नलिखित ऑपरेशन करेगा।
- पीसी पॉइंटर को सीएसआर रजिस्टर mepc के मान पर पुनर्स्थापित किया जाता है, अर्थात, mepc द्वारा सहेजे गए निर्देश पते पर निष्पादन शुरू होता है। अपवाद हैंडलिंग पूरा होने के बाद mepc के ऑफसेट ऑपरेशन पर ध्यान देना आवश्यक है।
- CSR रजिस्टर स्थिति को अद्यतन करने के लिए, MIE को MPIE में पुनर्स्थापित किया जाता है, तथा MPP का उपयोग पिछले माइक्रोप्रोसेसर के विशेषाधिकार प्राप्त मोड को पुनर्स्थापित करने के लिए किया जाता है।
- संपूर्ण अपवाद प्रतिक्रिया प्रक्रिया को निम्नलिखित चित्र 2-1 द्वारा वर्णित किया जा सकता है।
पीएफआईसी और इंटरप्ट नियंत्रण
- किंगके वी3 माइक्रोप्रोसेसर को प्रोग्रामेबल फास्ट इंटरप्ट कंट्रोलर (पीएफआईसी) के साथ डिजाइन किया गया है, जो अपवादों सहित 256 इंटरप्ट तक का प्रबंधन कर सकता है।
- उनमें से प्रथम 16 माइक्रोप्रोसेसर के आंतरिक इंटरप्ट के रूप में निश्चित होते हैं, तथा शेष बाह्य इंटरप्ट होते हैं, अर्थात् बाह्य इंटरप्ट की अधिकतम संख्या 240 तक बढ़ाई जा सकती है। इसकी मुख्य विशेषताएं इस प्रकार हैं।
- 240 बाह्य व्यवधान, प्रत्येक व्यवधान अनुरोध में स्वतंत्र ट्रिगर और मास्क नियंत्रण बिट्स होते हैं, समर्पित स्थिति बिट्स के साथ
- प्रोग्रामयोग्य इंटरप्ट प्राथमिकता नेस्टिंग के 2 स्तरों का समर्थन करती है
- तंत्र में विशेष तीव्र व्यवधान, हार्डवेयर स्वचालित स्टैकिंग और रिकवरी, अधिकतम HPE गहराई 2 स्तर
- वेक्टर टेबल फ्री (VTF) इंटरप्ट रिस्पांस मैकेनिज्म, इंटरप्ट वेक्टर एड्रेस तक 2-चैनल प्रोग्रामेबल डायरेक्ट एक्सेस
- टिप्पणी: इंटरप्ट नियंत्रकों द्वारा समर्थित अधिकतम नेस्टिंग गहराई और एचपीई गहराई विभिन्न माइक्रोप्रोसेसर मॉडलों के लिए अलग-अलग होती है, जिसे तालिका 1-1 में पाया जा सकता है।
- व्यवधानों और अपवादों की सदिश तालिका नीचे तालिका 3-1 में दर्शाई गई है।
तालिका 3-1 अपवाद और व्यवधान वेक्टर तालिका
संख्या | प्राथमिकता | प्रकार | नाम | विवरण |
0 | – | – | – | – |
1 | – | – | – | – |
2 | -5 | तय | एनएमआई | गैर-मास्केबल व्यवधान |
3 | -4 | तय | एक्ससी | अपवाद व्यवधान |
4 | – | – | – | – |
5 | -3 | तय | ईकॉल-एम | मशीन मोड कॉलबैक इंटरप्ट |
6-7 | – | – | – | – |
8 | -2 | तय | ईकॉल-यू | उपयोगकर्ता मोड कॉलबैक इंटरप्ट |
9 | -1 | तय | ब्रेक पॉइंट | ब्रेकपॉइंट कॉलबैक इंटरप्ट |
10-11 | – | – | – | – |
12 | 0 | निर्देशयोग्य | SysTick | सिस्टम टाइमर व्यवधान |
13 | – | – | – | – |
14 | 1 | निर्देशयोग्य | एसडब्ल्यूआई | सॉफ्टवेयर व्यवधान |
15 | – | – | – | – |
16-255 | 2-241 | निर्देशयोग्य | बाह्य व्यवधान | बाह्य व्यवधान 16-255 |
टिप्पणी: ECALL-M, ECALL-U, और BREAKPOINT सभी विभिन्न प्रकार के अपवाद EXC हैं, जो उपयोग में आसानी के लिए V3B/C में स्वतंत्र हैं, और उपरोक्त 3 प्रविष्टि पते V3A में EXC के साथ साझा किए गए हैं।
PFIC रजिस्टर सेट
तालिका 3-2 पीएफआईसी रजिस्टर
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_आईएसआरx | 0xE000E000
-0xE000E01C |
RO | इंटरप्ट सक्षम स्थिति रजिस्टर x | 0x00000000 |
पीएफआईसी_आईपीआरx | 0xE000E020
-0xE000E03C |
RO | लंबित स्थिति रजिस्टर x को बाधित करें | 0x00000000 |
पीएफआईसी_ITHRESDR | 0xE000E040 | RW | बाधा प्राथमिकता सीमा विन्यास रजिस्टर | 0x00000000 |
पीएफआईसी_VTFBADDRR | 0xE000E044 | RW | वीटीएफ आधार पता रजिस्टर
नोट: केवल V3A के लिए वैध |
0x00000000 |
पीएफआईसी_सीएफजीआर | 0xE000E048 | RW | इंटरप्ट कॉन्फ़िगरेशन रजिस्टर
नोट: केवल V3A के लिए वैध |
0x00000000 |
पीएफआईसी_जीआईएसआर | 0xE000E04C | RO | वैश्विक स्थिति रजिस्टर को बाधित करें | 0x00000002 |
पीएफआईसी_VTFIDR |
0xE000E050 |
RW |
VTF इंटरप्ट आईडी कॉन्फ़िगरेशन रजिस्टर
नोट: केवल V3B/C के लिए वैध. |
0x00000000 |
PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | वीटीएफ x ऑफसेट पता रजिस्टर | 0xXXXXXXXXX |
PFIC_IENRx | 0xE000E100
-0xE000E11C |
WO | इंटरप्ट सक्षम सेटिंग रजिस्टर x | 0x00000000 |
पीएफआईसी_आईआरईआरx | 0xE000E180
-0xE000E19C |
WO | इंटरप्ट सक्षम क्लियर रजिस्टर x | 0x00000000 |
पीएफआईसी_आईपीएसआरx | 0xE000E200
-0xE000E21C |
WO | लंबित सेटिंग रजिस्टर x को बाधित करें | 0x00000000 |
पीएफआईसी_आईपीआरआरx | 0xE000E280
-0xE000E29C |
WO | रजिस्टर x साफ़ करने हेतु व्यवधान लंबित | 0x00000000 |
PFIC_IACTRx | 0xE000E300
-0xE000E31C |
RO | इंटरप्ट सक्रियण स्थिति रजिस्टर x | 0x00000000 |
PFIC_IPRIORx | 0xE000E400
-0xE000E43C |
RW | बाधा प्राथमिकता कॉन्फ़िगरेशन रजिस्टर | 0x00000000 |
पीएफआईसी_एससीटीएलआर | 0xE000ED10 | RW | सिस्टम नियंत्रण रजिस्टर | 0x00000000 |
टिप्पणी:
- 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>)
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_आईएसआर0 | 0xE000E000 | RO | इंटरप्ट 0-31 स्टेटस रजिस्टर को सक्षम करता है, कुल 32 स्टेटस बिट्स [n], जो #n इंटरप्ट को स्टेटस सक्षम करने का संकेत देता है
नोट: NMI और EXC सक्षम हैं डिफ़ॉल्ट रूप से |
V3A के लिए: 0x0000000C
V3B/C के लिए: 0x0000032C |
पीएफआईसी_आईएसआर1 | 0xE000E004 | RO | इंटरप्ट 32-63 स्टेटस रजिस्टर को सक्षम करता है, कुल 32 स्टेटस बिट्स | 0x00000000 |
… | … | … | … | … |
पीएफआईसी_आईएसआर7 | 0xE000E01C | RO | इंटरप्ट 224-255 स्टेटस रजिस्टर को सक्षम करता है, कुल 32 स्टेटस बिट्स | 0x00000000 |
पीएफआईसी_आईपीआर0 | 0xE000E020 | RO | इंटरप्ट 0-31 लंबित स्थिति | 0x00000000 |
रजिस्टर, कुल 32 स्थिति बिट्स [n], जो इंटरप्ट #n की लंबित स्थिति को इंगित करता है | ||||
पीएफआईसी_आईपीआर1 | 0xE000E024 | RO | 32-63 लंबित स्थिति रजिस्टरों को बाधित करें, कुल 32 स्थिति बिट्स | 0x00000000 |
… | … | … | … | … |
पीएफआईसी_आईपीआर7 | 0xE000E03C | RO | 244-255 लंबित स्थिति रजिस्टर में व्यवधान, कुल 32 स्थिति बिट्स | 0x00000000 |
संबंधित व्यवधानों को सक्षम और अक्षम करने के लिए रजिस्टरों के दो सेटों का उपयोग किया जाता है।
इंटरप्ट सक्षम सेटिंग और रजिस्टर साफ़ करें (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_IENR0 | 0xE000E100 | WO | इंटरप्ट 0-31 सेटिंग रजिस्टर को सक्षम करता है, कुल 32 सेटिंग बिट्स [n], इंटरप्ट #n सक्षम सेटिंग के लिए
टिप्पणी: एनएमआई और एक्ससी हैं सक्रिय डिफ़ॉल्ट रूप से |
0x00000000 |
पीएफआईसी_IENR1 | 0xE000E104 | WO | सेटिंग रजिस्टर को सक्षम करने के लिए इंटरप्ट 32-63, कुल 32 सेटिंग बिट्स | 0x00000000 |
… | … | … | … | … |
पीएफआईसी_IENR7 | 0xE000E11C | WO | इंटरप्ट 224-255 सेटिंग सक्षम करें
रजिस्टर, कुल 32 सेटिंग बिट्स |
0x00000000 |
– | – | – | – | – |
पीएफआईसी_आईआरईआर0 | 0xE000E180 | WO | इंटरप्ट 0-31 क्लियर रजिस्टर को सक्षम करते हैं, कुल 32 क्लियर बिट्स [n], इंटरप्ट #n के लिए क्लियर सक्षम करें नोट: एनएमआई और ईएक्ससी को एक साथ नहीं जोड़ा जा सकता संचालित |
0x00000000 |
पीएफआईसी_आईआरईआर1 | 0xE000E184 | WO | इंटरप्ट 32-63 एक स्पष्ट रजिस्टर सक्षम करता है, कुल 32 स्पष्ट बिट्स | 0x00000000 |
… | … | … | … | … |
पीएफआईसी_आईआरईआर7 | 0xE000E19C | WO | इंटरप्ट 244-255 एक स्पष्ट रजिस्टर, कुल 32 स्पष्ट बिट्स को सक्षम करता है | 0x00000000 |
संबंधित व्यवधानों को सक्षम और अक्षम करने के लिए रजिस्टरों के दो सेटों का उपयोग किया जाता है।
लंबित सेटिंग को बाधित करें और रजिस्टर साफ़ करें (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_आईपीएसआर0 |
0xE000E200 |
WO |
इंटरप्ट 0-31 लंबित सेटिंग रजिस्टर, 32
सेटिंग बिट्स [n], इंटरप्ट #n लंबित सेटिंग के लिए |
0x00000000 |
पीएफआईसी_आईपीएसआर1 | 0xE000E204 | WO | इंटरप्ट 32-63 लंबित सेटअप रजिस्टर,
कुल 32 सेटअप बिट्स |
0x00000000 |
… | … | … | … | … |
पीएफआईसी_आईपीएसआर7 | 0xE000E21C | WO | इंटरप्ट 224-255 लंबित सेटिंग
रजिस्टर, कुल 32 सेटिंग बिट्स |
0x00000000 |
– | – | – | – | – |
पीएफआईसी_आईपीआरआर0 |
0xE000E280 |
WO |
इंटरप्ट 0-31 रजिस्टर क्लियर होने तक, कुल 32 क्लियर बिट्स [n], इंटरप्ट #n के लिए
लंबित स्पष्ट |
0x00000000 |
पीएफआईसी_आईपीआरआर1 | 0xE000E284 | WO | इंटरप्ट 32-63 रजिस्टर क्लियर होने तक लंबित है,
कुल 32 स्पष्ट बिट्स |
0x00000000 |
… | … | … | … | … |
पीएफआईसी_आईपीआरआर7 | 0xE000E29C | WO | इंटरप्ट 244-255 रजिस्टर क्लियर होने तक लंबित है,
कुल 32 स्पष्ट बिट्स |
0x00000000 |
जब माइक्रोप्रोसेसर किसी इंटरप्ट को सक्षम करता है, तो इसे इंटरप्ट को ट्रिगर करने के लिए इंटरप्ट पेंडिंग रजिस्टर के माध्यम से सीधे सेट किया जा सकता है। पेंडिंग ट्रिगर को साफ़ करने के लिए इंटरप्ट पेंडिंग क्लियर रजिस्टर का उपयोग करें।
इंटरप्ट सक्रियण स्थिति रजिस्टर (PFIC_IACTR<0-7>)
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_IACTR0 | 0xE000E300 | RO | इंटरप्ट 0-31 32 स्टेटस बिट्स [n] के साथ स्टेटस रजिस्टर को सक्रिय करता है, जो यह दर्शाता है कि इंटरप्ट #n निष्पादित किया जा रहा है | 0x00000000 |
पीएफआईसी_IACTR1 | 0xE000E304 | RO | इंटरप्ट 32-63 सक्रियण स्थिति रजिस्टर, 32 स्थिति बिट्स
कुल |
0x00000000 |
… | … | … | … | … |
पीएफआईसी_IACTR7 | 0xE000E31C | RO | 224-255 सक्रियण स्थिति रजिस्टरों को बाधित करें, कुल 32 स्थिति बिट्स | 0x00000000 |
प्रत्येक इंटरप्ट में एक सक्रिय स्थिति बिट होता है, जो इंटरप्ट के प्रवेश करने पर सेट हो जाता है, तथा बाज़ार के वापस आने पर हार्डवेयर द्वारा साफ़ कर दिया जाता है।
व्यवधान प्राथमिकता और प्राथमिकता सीमा रजिस्टर (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_आईपीआरआईओआर0 | 0xE000E400 | RW | 0 प्राथमिकता कॉन्फ़िगरेशन को बाधित करें। V3A: [7:4]: प्राथमिकता नियंत्रण बिट्स यदि कॉन्फ़िगरेशन नेस्टेड नहीं है, तो कोई प्रीएम्प्शन बिट नहीं है यदि नेस्टिंग कॉन्फ़िगर किया गया है, तो बिट7 प्रीएम्प्टेड बिट है। [3:0]: आरक्षित, 0 पर स्थिर V3B: [7:6]: प्राथमिकता नियंत्रण बिट्स यदि कॉन्फ़िगरेशन नेस्टेड नहीं है, तो कोई प्रीमेप्टिव बिट्स नेस्टेड कॉन्फ़िगर नहीं किया गया है, सभी बिट्स प्रीमेप्टेड हैं, लेकिन दो स्तरों तक इंटरप्ट होने की अनुमति है [5:0]: आरक्षित, 0 पर तय किया गया वी3सी: [7:5]: प्राथमिकता नियंत्रण बिट्स यदि कॉन्फ़िगरेशन नेस्टेड नहीं है, तो कोई प्रीम्पटिव बिट्स नहीं अगर नेस्टेड कॉन्फ़िगर किया गया है, तो सभी बिट्स को प्रीएमप्ट किया जाता है, लेकिन दो लेवल तक के इंटरप्ट को होने की अनुमति दी जाती है [4:0]: रिज़र्व, 0 पर फिक्स किया गया नोट: प्राथमिकता मान जितना छोटा होगा, प्राथमिकता उतनी ही अधिक होगी। अगर एक ही प्रीएमप्शन प्राथमिकता वाला इंटरप्ट एक ही समय पर लटका हुआ है, तो उच्च प्राथमिकता वाला इंटरप्ट पहले निष्पादित किया जाएगा। |
0x00 |
पीएफआईसी_आईपीआरआईओआर1 | 0xE000E401 | RW | इंटरप्ट 1 प्राथमिकता सेटिंग, PFIC_IPRIOR0 के समान कार्य | 0x00 |
पीएफआईसी_आईपीआरआईओआर2 | 0xE000E402 | RW | इंटरप्ट 2 प्राथमिकता सेटिंग, PFIC_IPRIOR0 के समान कार्य | |
… | … | … | … | … |
पीएफआईसी_आईपीआरआईओआर254 | 0xE000E4FE | RW | इंटरप्ट 254 प्राथमिकता सेटिंग, PFIC_IPRIOR0 के समान कार्य | 0x00 |
पीएफआईसी_आईपीआरआईओआर255 | 0xE000E4FF | RW | इंटरप्ट 255 प्राथमिकता सेटिंग, PFIC_IPRIOR0 के समान कार्य | 0x00 |
– | – | – | – | – |
पीएफआईसी_ITHRESDR | 0xE000E040 | RW | बाधा प्राथमिकता सीमा सेटिंग
वी3ए: [31:8]: आरक्षित, 0 पर स्थिर [7:4]: प्राथमिकता सीमा [3:0]: आरक्षित, 0 पर स्थिरवी3बी: [31:8]: आरक्षित, 0 पर स्थिर [7:5]: प्राथमिकता सीमा [4:0]: आरक्षित, 0 पर स्थिरवी3सी: [31:8]: आरक्षित, 0 पर स्थिर [7:5]: प्राथमिकता सीमा [4:0]: आरक्षित, 0 पर स्थिरटिप्पणी: प्राथमिकता मान ≥ थ्रेशोल्ड वाले इंटरप्ट के लिए, हैंग होने पर इंटरप्ट सेवा फ़ंक्शन निष्पादित नहीं होता है, और जब यह रजिस्टर 0 होता है, तो इसका मतलब है कि थ्रेशोल्ड रजिस्टर अमान्य है। |
0x00 |
इंटरप्ट कॉन्फ़िगरेशन रजिस्टर (PFIC_CFGR)
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_सीएफजीआर | 0xE000E048 | RW | इंटरप्ट कॉन्फ़िगरेशन रजिस्टर | 0x00000000 |
यह रजिस्टर केवल V3A के लिए वैध है, इसके बिट्स इस प्रकार परिभाषित हैं:
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:16] | कुंजी कोड | WO | विभिन्न लक्ष्य नियंत्रण बिट्स के अनुरूप, संबंधित सुरक्षा पहुंच पहचान डेटा को संशोधित करने के लिए एक साथ लिखा जाना चाहिए, और रीडआउट डेटा 0 पर तय किया गया है। KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF। | 0 |
[15:8] | सुरक्षित | RO | सुरक्षित | 0 |
7 | SYSRESET | WO | सिस्टम रीसेट (KEY3 पर एक साथ लिखना)। ऑटो क्लियर 0.
1 लिखना वैध है, 0 लिखना अवैध है। नोट: PFIC_SCTLR रजिस्टर SYSRESET बिट के समान कार्य। |
0 |
6 | पीएफआईसीरीसेट | 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 | नेस्टCTRL | RW | इंटरप्ट नेस्टिंग नियंत्रण को सक्षम बनाता है।
1: बंद; 0: चालू (कुंजी 1 पर समकालिक लेखन) |
0 |
0 | HWSTKCTRL | RW | एचपीई सक्षम नियंत्रण
1: बंद; 0: चालू (कुंजी 1 पर समकालिक लेखन) |
0 |
इंटरप्ट ग्लोबल स्टेटस रजिस्टर (PFIC_GISR)
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_जीआईएसआर | 0xE000E04C | RO | वैश्विक स्थिति रजिस्टर को बाधित करें | 0x00000000 |
इसके लोगों को इस प्रकार परिभाषित किया गया है
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:14] | सुरक्षित | RO | सुरक्षित | 0 |
13 |
लॉकस्टा |
RO |
क्या प्रोसेसर वर्तमान में लॉक अवस्था में है:
1: लॉक अवस्था; 0: गैर-लॉक स्थिति. नोट: यह बिट केवल V3B/C के लिए वैध है। |
0 |
12 |
डीबीजीमोड |
RO |
क्या प्रोसेसर वर्तमान में डिबग स्थिति में है: 1: डिबग स्थिति;
0: गैर-डीबग स्थिति. नोट: यह बिट केवल V3B/C के लिए वैध है। |
0 |
11 |
ग्लोबली |
RO |
वैश्विक व्यवधान सक्षम:
१: व्यवधान सक्षम करें; 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 ID आधार पता और ऑफसेट पता रजिस्टर (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_VTFBADDRR |
0xE000E044 |
RW |
[31:28]: VTF के लक्ष्य पते के उच्च 4 बिट्स [27:0]: आरक्षित
यह रजिस्टर केवल V3A के लिए वैध है। |
0x00000000 |
पीएफआईसी_VTFIDR |
0xE000E050 |
RW |
[31:24]: वीटीएफ की संख्या 3 [23:16]: वीटीएफ की संख्या 2 [15:8]: वीटीएफ की संख्या 1 [7:0]: वीटीएफ की संख्या 0
यह रजिस्टर केवल V3B/C के लिए वैध है। |
0x00000000 |
– | – | – | – | – |
पीएफआईसी_VTFADDRR0 |
0xE000E060 | RW | V3A: [31:24]: VTF 0 इंटरप्ट संख्या [23:0]: VTF लक्ष्य पते के निम्न 24 बिट्स, जिनमें से निम्न 20 बिट्स को वैध होने के लिए कॉन्फ़िगर किया गया है, और [23:20] को 0 पर स्थिर किया गया है।
वी3बी/सी: [31:1]: VTF 0 पता, 2-बाइट संरेखित [0]:1: VTF 0 चैनल सक्षम करें 0: अक्षम करें |
V3A के लिए: 0x00000000 V3B/C के लिए: 0xXXXXXXXXX |
पीएफआईसी_VTFADDRR1 |
0xE000E064 |
RW |
V3A: [31:24]: VTF 1 इंटरप्ट संख्या [23:0]: VTF लक्ष्य पते के निम्न 24 बिट्स, जिनमें से निम्न 20 बिट्स को वैध माना जाता है और [23:20] को 0 पर स्थिर किया जाता है।
वी3बी/सी: [31:1]: VTF 1 पता, 2-बाइट संरेखित [0]:1: VTF 1 चैनल सक्षम करें 0: अक्षम करें |
V3A के लिए: 0x00000000 V3B/C के लिए: 0xXXXXXXXXX |
पीएफआईसी_VTFADDRR2 |
0xE000E068 |
RW |
V3A: [31:24]: VTF 2 इंटरप्ट संख्या [23:0]: VTF लक्ष्य पते के निम्न 24 बिट्स, जिनमें से निम्न 20 बिट्स को वैध होने के लिए कॉन्फ़िगर किया गया है, और [23:20] को 0 पर स्थिर किया गया है।
वी3बी/सी: [31:1]: VTF 2 पता, 2-बाइट संरेखित [0]:1: VTF 2 चैनल सक्षम करें 0: अक्षम करें |
V3A के लिए: 0x00000000 V3B/C के लिए: 0xXXXXXXXXX |
पीएफआईसी_VTFADDRR3 | 0xE000E06C | RW | वी3ए: | V3A के लिए: |
[31:24]: वी.टी.एफ. 3 इंटरप्ट संख्या [23:0]: वी.टी.एफ. लक्ष्य पते के निम्न 24 बिट्स, जिनमें से निम्न 20 बिट्स को वैध माना जाता है, तथा [23:20] को 0 पर स्थिर किया जाता है।
वी3बी/सी: [31:1]: VTF 3 पता, 2-बाइट संरेखित [0]:1: VTF 3 चैनल सक्षम करें 0: अक्षम करें |
0x00000000
V3B/C के लिए: 0xXXXXXXXXX |
सिस्टम नियंत्रण रजिस्टर (PFIC_SCTLR)
नाम | पहुँच पता | पहुँच | विवरण | मान रीसेट करें |
पीएफआईसी_एससीटीएलआर | 0xE000ED10 | RW | सिस्टम नियंत्रण रजिस्टर | 0x00000000 |
उनमें से प्रत्येक को निम्नानुसार परिभाषित किया गया है।
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
31 | SYSRESET | WO | सिस्टम रीसेट, ऑटो क्लियर 0. 1 लिखना वैध है, और 0 लिखना अवैध है.
नोट: यह बिट केवल V3B/C के लिए वैध है |
0 |
[30:6] | सुरक्षित | RO | सुरक्षित | 0 |
5 | सेटेवेंट | WO | WFE केस को सक्रिय करने के लिए इवेंट सेट करें. | 0 |
4 |
सेवोनपेंड | RW | जब कोई घटना घटित होती है या किसी लंबित स्थिति में बाधा उत्पन्न होती है, तो सिस्टम को WFE निर्देश के बाद जगाया जा सकता है, या यदि WFE निर्देश निष्पादित नहीं होता है, तो सिस्टम को निर्देश के अगले निष्पादन के तुरंत बाद जगाया जाएगा।
1: सक्षम ईवेंट और सभी व्यवधान (असक्षम व्यवधानों सहित) सिस्टम को जगा सकते हैं। 0: केवल सक्षम ईवेंट और सक्षम व्यवधान सिस्टम को जगा सकते हैं. |
0 |
3 | WFITOWFE | RW | WFI कमांड को इस प्रकार निष्पादित करें जैसे कि वह WFE हो।
1: बाद के WFI निर्देश को WFE निर्देश के रूप में मानें। 0: कोई प्रभाव नहीं. |
0 |
2 | गहरी नींद | RW | नियंत्रण प्रणाली का कम शक्ति मोड. | 0 |
1: गहरी नींद 0: नींद | ||||
1 | स्लीपोनेक्सी टी | RW | नियंत्रण द्वारा इंटरप्ट सेवा प्रोग्राम छोड़ने के बाद सिस्टम की स्थिति.
1: सिस्टम कम-पावर मोड में प्रवेश करता है। 0: सिस्टम मुख्य प्रोग्राम में प्रवेश करता है। |
0 |
0 | सुरक्षित | RO | सुरक्षित | 0 |
व्यवधान-संबंधी CSR रजिस्टर
इसके अलावा, निम्नलिखित CSR रजिस्टर भी इंटरप्ट के प्रसंस्करण पर महत्वपूर्ण प्रभाव डालते हैं। इंटरप्ट सिस्टम कंट्रोल रजिस्टर (intsyscr)
यह रजिस्टर केवल V3A के लिए मान्य नहीं है:
नाम | सीएसआर पता | पहुँच | विवरण | मान रीसेट करें |
intsyscr | 0x804 | यूआरडब्लू | इंटरप्ट सिस्टम नियंत्रण रजिस्टर | 0x0000E002 |
इसके लोगों को इस प्रकार परिभाषित किया गया है:
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
31 |
ताला |
यूआरओ |
0: इस रजिस्टर को उपयोगकर्ता मोड में पढ़ा और लिखा जा सकता है;
1: इस रजिस्टर को केवल मशीन मोड में ही पढ़ा और लिखा जा सकता है। नोट: यह कॉन्फ़िगरेशन बिट निम्न से मान्य है संस्करण 1.0 के बाद. |
0 |
[30:6] | सुरक्षित | यूआरओ | सुरक्षित | 0x380 |
5 |
GIHWSTKNEN |
यूआरडब्लू1 |
वैश्विक व्यवधान और हार्डवेयर स्टैक शटडाउन सक्षम हैं।
नोट: इस बिट का उपयोग अक्सर रियल-टाइम ऑपरेटिंग सिस्टम में किया जाता है। जब किसी इंटरप्ट के दौरान संदर्भ स्विच किया जाता है, तो इस बिट को सेट करने से ग्लोबल इंटरप्ट बंद हो सकता है और हार्डवेयर स्टैक को पुश किया जा सकता है। जब संदर्भ स्विच पूरा हो जाता है और इंटरप्ट वापस आ जाता है, तो हार्डवेयर यह बिट स्वचालित रूप से साफ़ हो जाएगा. |
0 |
4 | सुरक्षित | यूआरओ | सुरक्षित | 0 |
[3:2] | पीएमटीसीएफजी | यूआरडब्लू | प्राथमिकता पूर्वग्रहण बिट्स का विन्यास:
00: प्रीमेशन बिट्स की संख्या 0 है; 01: प्रीमेशन बिट्स की संख्या 1 है; 10: प्रीमेशन बिट्स की संख्या 2 है; 11: प्रीमेशन बिट्स की संख्या 3 है; नोट: यह कॉन्फ़िगरेशन बिट इसके बाद वैध है 1.0. |
0 |
1 | सुनना | यूआरडब्लू | इंटरप्ट नेस्टिंग फ़ंक्शन सक्षम है, और निश्चित मान 1 है: | 1 |
0: अक्षम;
1: सक्षम करें. नोट: 1. वास्तविक नेस्टिंग स्तर CSR 0xBC1 में NEST_LVL द्वारा नियंत्रित किया जाता है; 2. केवल 1.0 के बाद के संस्करण ही उपलब्ध होंगे लिखा हुआ। |
||||
0 | ह्व्स्टकेन | यूआरडब्लू | हार्डवेयर स्टैक सक्षम करें:
0: हार्डवेयर स्टैक दबाने का फ़ंक्शन अक्षम है; 1: हार्डवेयर स्टैक प्रेसिंग फ़ंक्शन सक्षम है। |
0 |
मशीन मोड अपवाद आधार पता रजिस्टर (mtvec)
नाम | सीएसआर पता | पहुँच | विवरण | मान रीसेट करें |
एमटीवीईसी | 0x305 | एमआरडब्लू | अपवाद आधार पता रजिस्टर | 0x00000000 |
इसके लोगों को इस प्रकार परिभाषित किया गया है
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:2] | बेसएडडीआर[31:2] | एमआरडब्लू | इंटरप्ट वेक्टर टेबल बेस पता, जहां
बिट्स [9:2] 0 पर स्थिर हैं. |
0 |
1 | मोड1 |
एमआरओ |
इंटरप्ट वेक्टर टेबल पहचान मोड: 0: सीमित दायरे के साथ जंप निर्देश द्वारा पहचानें, और गैर-जंप निर्देश का समर्थन करें;
1: पूर्ण पते से पहचान करें, पूर्ण रेंज का समर्थन करें, लेकिन कूदना होगा। नोट: यह बिट केवल V3B/C के लिए वैध है। |
0 |
0 | मोड0 | एमआरडब्लू | व्यवधान या अपवाद प्रविष्टि पता मोड चयन.
0: एकसमान प्रविष्टि पते का उपयोग. 1: इंटरप्ट संख्या *4 पर आधारित पता ऑफसेट. |
0 |
V3 श्रृंखला माइक्रोप्रोसेसरों वाले MCU के लिए, MODE0 को स्टार्टअप में डिफ़ॉल्ट रूप से 1 के रूप में कॉन्फ़िगर किया गया है file, और अपवादों या व्यवधानों के लिए प्रविष्टियाँ व्यवधान संख्या *4 के अनुसार ऑफसेट की जाती हैं। ध्यान दें कि V3A माइक्रोप्रोसेसर वेक्टर टेबल पर जंप इंस्ट्रक्शन स्टोर करता है, जबकि V3B/C माइक्रोप्रोसेसर या तो जंप इंस्ट्रक्शन या इंटरप्ट फ़ंक्शन के निरपेक्ष पते का उपयोग कर सकता है, जिसे डिफ़ॉल्ट स्टार्टअप में निरपेक्ष पते के रूप में कॉन्फ़िगर किया गया है file.
माइक्रोप्रोसेसर कॉन्फ़िगरेशन रजिस्टर (सुधारक)
यह रजिस्टर V3A के लिए अमान्य है:
नाम | सीएसआर पता | पहुँच | विवरण | मान रीसेट करें |
कोरसीजीआर | 0xBC0 | एमआरडब्लू | माइक्रोप्रोसेसर कॉन्फ़िगरेशन रजिस्टर | 0x00000001 |
इसके लोगों को इस प्रकार परिभाषित किया गया है
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:8] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
7 |
CSTA_फॉल्ट_IE |
एमआरडब्लू |
कोर स्थिति त्रुटि व्यवधान सक्षम:
0: स्थिति त्रुटि पर, कोई एनएमआई व्यवधान उत्पन्न नहीं होता है; 1: स्थिति त्रुटि पर, NMI व्यवधान है उत्पन्न. |
0 |
6 | सुरक्षित | एमआरओ | इसे 0 रखें. | 0 |
5 | IE_रीमैप_EN | एमआरडब्लू | MIE रजिस्टर मैपिंग सक्षम बनाता है:
0: CSR पता 0x800 एक केवल-पढ़ने योग्य रजिस्टर है और वापसी मान STATUS का मान है; 1: CSR पता 3x7 के बिट्स 0 और 800 को क्रमशः STATUS रजिस्टर के बिट MIE और STATUS रजिस्टर के बिट MPIE से मैप किया गया है। |
0 |
4 | सुरक्षित | एमआरओ | सुरक्षित | 0 |
3 | ROM_लूप_एसीसी | एमआरडब्लू | ROM क्षेत्र अनुदेश लूप त्वरण सक्षम:
0: ROM क्षेत्र में चक्रीय त्वरण फ़ंक्शन को बंद करें; 1: 128 बाइट्स के भीतर लूप बॉडी वाले निरंतर निर्देश पूरी तरह से त्वरित होंगे, जबकि 256 बाइट्स के भीतर लूप बॉडी वाले निर्देश आंशिक रूप से त्वरित होंगे; |
0 |
2 | ROM_जंप_एसीसी | एमआरडब्लू | ROM क्षेत्र अनुदेश कूद त्वरण सक्षम:
0: ROM क्षेत्र अनुदेश कूद त्वरण अक्षम करें; 1: ROM क्षेत्र में निर्देश जम्प त्वरण सक्षम करें। |
0 |
[1:0] | फ़ेच_मोड | एमआरडब्लू | लाने का मोड:
00: प्रीफ़ेच बंद है। अमान्य निर्देश प्राप्त करने के संचालन से बचने के लिए निर्देश प्रीफ़ेच फ़ंक्शन को बंद कर दिया जाता है, और सीपीयू पाइपलाइन पर अधिकतम एक मान्य निर्देश होता है। इस मॉडल में सबसे कम बिजली की खपत होती है, और इसका प्रदर्शन लगभग 2 ~ 3 गुना कम हो जाता है। 01: प्रीफ़ेच मोड 1. जब निर्देश प्रीफ़ेच फ़ंक्शन चालू होता है, तो सीपीयू निर्देश मेमोरी को तब तक एक्सेस करना जारी रखेगा जब तक कि आंतरिक निर्देश बफर में निष्पादित किए जाने वाले निर्देशों की संख्या एक निश्चित संख्या से अधिक न हो जाए, या निर्देश बफर भर न जाए, और निर्देश प्राप्त करना निलंबित हो जाएगा; (सीपीयू भविष्यवाणी की विफलता अनावश्यक फ़ेच ऑपरेशन को जन्म देगी, और कुछ मामलों में, निष्पादन इकाई बुलबुले के 0 ~ 2 चक्रों को पेश करेगी, |
0x1 |
इंटरप्ट नेस्टेड कंट्रोल रजिस्टर (inestcr)
यह रजिस्टर केवल V3A के लिए अमान्य है:
नाम | सीएसआर पता | पहुँच | विवरण | मान रीसेट करें |
इन्वेस्टर | 0xBC1 | एमआरडब्लू | इंटरप्ट नेस्टेड नियंत्रण रजिस्टर | 0x00000000 |
इसके लोगों को इस प्रकार परिभाषित किया गया है
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
31 | सुरक्षित | एमआरओ | सुरक्षित | 0 |
30 | नेस्ट_OV | एमआरडब्लू | व्यवधान/अपवाद नेस्टेड ओवरफ्लो फ्लैग बिट, साफ़ करने के लिए 1 लिखें:
0: व्यवधान ओवरफ्लो नहीं हुआ; 1: व्यवधान ओवरफ्लो ध्वज. नोट: इंटरप्ट ओवरफ़्लो केवल तब होगा जब निर्देश अपवाद या NMI इंटरप्ट उत्पन्न करने के लिए सेकेंडरी इंटरप्ट सर्विस फ़ंक्शन निष्पादित किया जाएगा। इस समय, अपवाद और NMI इंटरप्ट सामान्य रूप से प्रवेश करते हैं, लेकिन CPU स्टैक ओवरफ़्लो हो जाता है, इसलिए आप इस अपवाद से बाहर नहीं निकल सकते हैं और एनएमआई व्यवधान. |
0 |
[29:12] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
[11:8] | नेस्ट_एसटीए | एमआरओ | नेस्टेड स्थिति ध्वज बिट:
0000: कोई व्यवधान नहीं; 0001: स्तर 1 व्यवधान; 0011: स्तर 2 व्यवधान (1-स्तर नेस्टिंग); |
0 |
0111: स्तर 3 व्यवधान (अतिप्रवाह);
1111: स्तर 4 व्यवधान (अतिप्रवाह). |
||||
[7:2] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
[1:0] | नेस्ट_LVL | एमआरडब्लू | नेस्टिंग स्तर:
00: नेस्टिंग निषिद्ध है और नेस्टिंग फ़ंक्शन बंद है; 01: प्रथम-स्तरीय नेस्टिंग, जो नेस्टिंग फ़ंक्शन को चालू करता है; अन्य: अमान्य. नोट: इस फ़ील्ड में 10 या 11 लिखें, और फ़ील्ड 01 पर सेट हो जाएगी। इस फ़ील्ड में 11 लिखते समय, चिप का उच्चतम नेस्टिंग स्तर प्राप्त करने के लिए इस रजिस्टर को पढ़ें। |
0 |
उपयोगकर्ता मोड वैश्विक इंटरप्ट सक्षम रजिस्टर (इंटर्न)
यह रजिस्टर केवल V3A के लिए अमान्य है:
नाम | सीएसआर पता | पहुँच | विवरण | मान रीसेट करें |
गिंटेनर | 0x800 | यूआरडब्लू | वैश्विक व्यवधान सक्षम रजिस्टर | 0x00000000 |
इस रजिस्टर का उपयोग ग्लोबल इंटरप्ट के सक्षम और मास्क को नियंत्रित करने के लिए किया जाता है। मशीन मोड में ग्लोबल इंटरप्ट के सक्षम और मास्क को स्टेटस में MIE और MPIE बिट्स द्वारा नियंत्रित किया जा सकता है, लेकिन इस रजिस्टर को यूजर मोड में संचालित नहीं किया जा सकता है।
वैश्विक इंटरप्ट सक्षम रजिस्टर gintenr, mstatus में MIE और MPIE की मैपिंग है, और इसका उपयोग उपयोगकर्ता मोड में gintenr को संचालित करके MIE और MPIE को सेट और साफ़ करने के लिए किया जा सकता है।
उनमें से प्रत्येक को इस प्रकार परिभाषित किया गया है:
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:13] | सुरक्षित | यूआरओ | सुरक्षित | 0 |
[12:11] | एमपीपी | यूआरओ | व्यवधान से पहले विशेषाधिकार प्राप्त मोड में प्रवेश करें। | 0 |
[10:8] | सुरक्षित | यूआरओ | सुरक्षित | 0 |
7 | एमपीआईई | यूआरडब्लू | जब 0xBC0(CSR)बिट5 सक्षम होता है, तो यह बिट
उपयोगकर्ता मोड में पढ़ा और लिखा जा सकता है। |
0 |
[6:4] | सुरक्षित | यूआरओ | सुरक्षित | 0 |
3 | MIE | यूआरडब्लू | जब 0xBC0(CSR)बिट5 सक्षम होता है, तो यह बिट
उपयोगकर्ता मोड में पढ़ा और लिखा जा सकता है। |
0 |
[1:0] | सुरक्षित | यूआरओ | सुरक्षित | 0 |
नेस्टिंग में बाधा डालें
इंटरप्ट, कॉन्फ़िगरेशन रजिस्टर PFIC_CFGR और इंटरप्ट प्राथमिकता रजिस्टर PFIC_IPRIOR के संयोजन में, इंटरप्ट की नेस्टिंग की अनुमति दी जा सकती है। इंटरप्ट कॉन्फ़िगरेशन रजिस्टर में नेस्टिंग सक्षम करें (V3 श्रृंखला माइक्रोप्रोसेसरों के लिए नेस्टिंग डिफ़ॉल्ट रूप से चालू है) और संबंधित इंटरप्ट की प्राथमिकता को कॉन्फ़िगर करें। प्राथमिकता मान जितना छोटा होगा, प्राथमिकता उतनी ही अधिक होगी। प्रीएम्प्शन बिट का मान जितना छोटा होगा, प्रीएम्प्शन प्राथमिकता उतनी ही अधिक होगी। यदि एक ही समय में एक ही प्रीएम्प्शन प्राथमिकता के तहत इंटरप्ट लटके हुए हैं, तो माइक्रोप्रोसेसर पहले कम प्राथमिकता मान (उच्च प्राथमिकता) वाले इंटरप्ट पर प्रतिक्रिया करता है।
हार्डवेयर प्रस्तावना/उपसंहार (एचपीई)
- जब कोई अपवाद या रुकावट आती है, तो माइक्रोप्रोसेसर वर्तमान प्रोग्राम प्रवाह को रोक देता है और अपवाद या रुकावट हैंडलिंग फ़ंक्शन के निष्पादन पर शिफ्ट हो जाता है, वर्तमान प्रोग्राम प्रवाह की साइट को सहेजने की आवश्यकता होती है। अपवाद या रुकावट के वापस आने के बाद, साइट को पुनर्स्थापित करना और रुके हुए प्रोग्राम प्रवाह के निष्पादन को जारी रखना आवश्यक है। V3 श्रृंखला माइक्रोप्रोसेसरों के लिए, यहाँ "साइट" तालिका 1-2 में सभी कॉलर सेव्ड रजिस्टरों को संदर्भित करता है।
- V3 श्रृंखला माइक्रोप्रोसेसर हार्डवेयर सिंगल-साइकिल स्वचालित रूप से 16 आकार के कॉलर-सेव्ड रजिस्टरों को आंतरिक स्टैक क्षेत्र में सहेजने का समर्थन करते हैं जो उपयोगकर्ता को दिखाई नहीं देता है। जब कोई अपवाद या रुकावट वापस आती है, तो हार्डवेयर सिंगल साइकिल स्वचालित रूप से आंतरिक स्टैक क्षेत्र से डेटा को 16 आकार के रजिस्टरों में पुनर्स्थापित करता है। HPE 2 स्तरों तक नेस्टिंग का समर्थन करता है।
- माइक्रोप्रोसेसर प्रेशर स्टैक का एक योजनाबद्ध चित्र निम्नलिखित चित्र में दिखाया गया है।
टिप्पणी:
- एचपीई का उपयोग करने वाले इंटरप्ट फ़ंक्शन को एमआरएस या इसके द्वारा प्रदान किए गए टूलचेन का उपयोग करके संकलित करने की आवश्यकता है और इंटरप्ट फ़ंक्शन को __attribute__((interrupt(“WCH-Interrupt-fast”))) के साथ घोषित करने की आवश्यकता है।
- स्टैक पुश का उपयोग करने वाला इंटरप्ट फ़ंक्शन __attribute__((interrupt())) द्वारा घोषित किया जाता है।
वेक्टर टेबल फ्री (VTF)
- प्रोग्रामेबल फास्ट इंटरप्ट कंट्रोलर (पीएफआईसी) 4 वीटीएफ चैनल प्रदान करता है, अर्थात, इंटरप्ट वेक्टर टेबल लुकअप प्रक्रिया से गुजरे बिना इंटरप्ट फ़ंक्शन प्रविष्टि तक सीधी पहुंच।
- VTF चैनल को सामान्य रूप से इंटरप्ट फ़ंक्शन को कॉन्फ़िगर करते समय, इसके इंटरप्ट नंबर, इंटरप्ट सेवा फ़ंक्शन बेस एड्रेस और ऑफ़सेट एड्रेस को संबंधित PFIC नियंत्रक रजिस्टर में लिखकर सक्षम किया जा सकता है।
- तीव्र और तालिका-मुक्त व्यवधानों के लिए PFIC प्रतिक्रिया प्रक्रिया नीचे चित्र 3-2 में दर्शाई गई है।
भौतिक मेमोरी संरक्षण PMP
- सिस्टम की सुरक्षा को बेहतर बनाने के लिए, भौतिक मेमोरी सुरक्षा (PMP) मॉड्यूल को हाईलैंड जौ के V3 श्रृंखला माइक्रोप्रोसेसरों के लिए RISC-V आर्किटेक्चर मानक के अनुसार डिज़ाइन किया गया है। अधिकतम 4 भौतिक क्षेत्रों के एक्सेस अधिकार प्रबंधन का समर्थन किया जाता है। अनुमतियों में पढ़ना (R), लिखना (W), और निष्पादित करना (X) विशेषताएँ शामिल हैं, और संरक्षित क्षेत्र की लंबाई कम से कम 4 बाइट्स पर सेट की जा सकती है। PMP मॉड्यूल हमेशा उपयोगकर्ता मोड में प्रभावी होता है, लेकिन यह मशीन मोड में (L) विशेषता को लॉक करके वैकल्पिक रूप से प्रभावी हो सकता है।
- यदि एक्सेस वर्तमान अनुमति सीमा का उल्लंघन करता है, तो यह एक असामान्य रुकावट को ट्रिगर करेगा। PMP मॉड्यूल में 8-बिट कॉन्फ़िगरेशन रजिस्टरों के चार समूह (32-बिट का एक समूह) और एड्रेस रजिस्टरों के चार समूह शामिल हैं, जिनमें से सभी को CSR निर्देश द्वारा मशीन मोड में एक्सेस करने की आवश्यकता होती है।
- टिप्पणी: माइक्रोप्रोसेसरों के विभिन्न मॉडलों में PMP द्वारा समर्थित संरक्षित क्षेत्रों की संख्या भिन्न हो सकती है, तथा pmpcfg और pmpaddr रजिस्टरों द्वारा समर्थित संख्या भी भिन्न होती है। विवरण के लिए तालिका 1-1 देखें।
PMP रजिस्टर सेट
V3 माइक्रोप्रोसेसर के PMP मॉड्यूल द्वारा समर्थित CSR रजिस्टरों की सूची नीचे तालिका 4-1 में दर्शाई गई है।
तालिका 4-1 पीएमपी मॉड्यूल रजिस्टर सेट
नाम | सीएसआर पता | पहुँच | विवरण | मान रीसेट करें |
pmpcfg0 | 0x3A0 | एमआरडब्लू | PMP कॉन्फ़िगरेशन रजिस्टर 0 | 0x00000000 |
pmpaddr0 | 0x3B0 | एमआरडब्लू | PMP पता रजिस्टर 0 | 0xXXXXXXXXX |
pmpaddr1 | 0x3B1 | एमआरडब्लू | PMP पता रजिस्टर 1 | 0xXXXXXXXXX |
pmpaddr2 | 0x3B2 | एमआरडब्लू | PMP पता रजिस्टर 2 | 0xXXXXXXXXX |
pmpaddr3 | 0x3B3 | एमआरडब्लू | PMP पता रजिस्टर 3 | 0xXXXXXXXXX |
pmp
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 पीएमपी कॉन्फ़िगरेशन और पता रजिस्टर और संरक्षित क्षेत्र के बीच संबंध तालिका।
pmpaddr | pmpcfg. ए | आधार पता और आकार का मिलान |
यययय…यययय | एनए4 | आधार पता के रूप में 'yy…yyyy00' के साथ, 4-बाइट क्षेत्र सुरक्षित है। |
यययय…ययय0 | नापोट | आधार पता के रूप में 'yy…yyy000' के साथ, 8-बाइट क्षेत्र सुरक्षित है। |
वर्ष…वर्ष01 | नापोट | आधार पता के रूप में 'yy…yy0000' के साथ, 16-बाइट क्षेत्र सुरक्षित है। |
वर्ष…वर्ष०११ | नापोट | आधार पता के रूप में 'yy…y00000' के साथ, 16-बाइट क्षेत्र सुरक्षित है। |
… | … | … |
वर्ष01…111 | नापोट | आधार पता 'y0…000000' के साथ, 231-बाइट क्षेत्र सुरक्षित है। |
वर्ष011…111 | नापोट | संपूर्ण 232-बाइट क्षेत्र को सुरक्षित रखें। |
संरक्षण तंत्र
pmpcfg में X/W/R का उपयोग क्षेत्र I के संरक्षण प्राधिकरण को सेट करने के लिए किया जाता है, और प्रासंगिक प्राधिकरण का उल्लंघन एक संगत अपवाद उत्पन्न करेगा:
- निष्पादन प्राधिकरण के बिना PMP क्षेत्र में निर्देश प्राप्त करने का प्रयास करते समय, यह निर्देश प्राप्ति पहुँच त्रुटि अपवाद (mcause=1) उत्पन्न करेगा।
- जब बिना लिखित अनुमति के PMP क्षेत्र में डेटा लिखने का प्रयास किया जाता है, तो इससे स्टोर निर्देश एक्सेस में त्रुटि अपवाद (mcause=7) उत्पन्न होगा।
- जब पठन अनुमति के बिना PMP क्षेत्र में डेटा पढ़ने का प्रयास किया जाता है, तो यह लोड निर्देश के लिए असामान्य मेमोरी एक्सेस त्रुटि (mcause=5) उत्पन्न करेगा।
pmpcfg में A का उपयोग क्षेत्र 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, और a _ पता 2(g+2) है, तो NAPOT विधि अपनाई जाती है;
- अन्यथा, TOP मोड अपनाया जाता है।
तालिका 4-6 पीएमपी पता मिलान विधियाँ
एक कीमत | नाम | विवरण |
0बी00 | बंद | संरक्षित करने के लिए कोई क्षेत्र नहीं |
0बी01 | टीओआर | शीर्ष संरेखित क्षेत्र संरक्षण.
pmp pmpaddri = B_ADDR>> 2. नोट: यदि PMP का क्षेत्र 0 TOR मोड (i=0) के रूप में कॉन्फ़िगर किया गया है, तो संरक्षण क्षेत्र की निचली सीमा 0 पता है, अर्थात 0 ≤ addr < pmpaddr0, सभी मिलान सीमा के भीतर। |
0बी10 | एनए4 | 4-बाइट क्षेत्र सुरक्षा को ठीक किया गया।
pmp |
0बी11 | नापोट | जब A_ADDR 2(G+2) संरेखित हो, तो G ≥ 1 के साथ 2(G+2) क्षेत्र की सुरक्षा करें। pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1. |
- pmp
- किंगके वी3 सीरीज माइक्रोप्रोसेसर कई ज़ोन की सुरक्षा का समर्थन करते हैं। जब एक ही ऑपरेशन एक ही समय में कई ज़ोन से मेल खाता है, तो कम संख्या वाले ज़ोन का पहले मिलान किया जाता है।
सिस्टम टाइमर (SysTick)
- किंगके वी3 सीरीज माइक्रोप्रोसेसर को 32-बिट या 64-बिट काउंटर (सिस्टिक) के साथ डिज़ाइन किया गया है। इसका क्लॉक स्रोत सिस्टम क्लॉक या इसका 8-फ़्रीक्वेंसी डिवीजन है, और V3A केवल 8-फ़्रीक्वेंसी डिवीजन का समर्थन करता है।
- यह वास्तविक समय ऑपरेटिंग सिस्टम के लिए समय आधार, समय निर्धारण और माप समय प्रदान कर सकता है। टाइमर में शामिल विभिन्न प्रकार के रजिस्टरों के अलग-अलग मैपिंग पते होते हैं, जैसा कि निम्नलिखित तालिकाओं 5-1 और 5-2 में दिखाया गया है।
तालिका 5-1 V3A SysTick रजिस्टर सूची
नाम | पहुँच पता | विवरण | मान रीसेट करें |
एसटीके_CTLR | 0xE000F000 | सिस्टम काउंटर नियंत्रण रजिस्टर | 0x00000000 |
एसटीके_सीएनटीएल | 0xE000F004 | सिस्टम काउंटर कम रजिस्टर | 0xXXXXXXXXX |
एसटीके_सीएनटीएच | 0xE000F008 | सिस्टम काउंटर उच्च रजिस्टर
नोट: केवल V3A के लिए मान्य. |
0xXXXXXXXXX |
एसटीके_सीएमपीएलआर | 0xE000F00C | सिस्टम गिनती तुलना मूल्य कम रजिस्टर | 0xXXXXXXXXX |
एसटीके_सीएमपीएचआर | 0xE000F010 | सिस्टम गिनती तुलना मूल्य उच्च रजिस्टर
नोट: केवल V3A के लिए मान्य. |
0xXXXXXXXXX |
तालिका 5-2 अन्य मॉडलों की V3 SysTick रजिस्टर सूची
नाम | पहुँच पता | विवरण | मान रीसेट करें |
एसटीके_CTLR | 0xE000F000 | सिस्टम काउंटर नियंत्रण रजिस्टर | 0x00000000 |
एसटीके_एसआर | 0xE000F004 | सिस्टम काउंटर स्थिति रजिस्टर | 0x00000000 |
एसटीके_सीएनटीएल | 0xE000F008 | सिस्टम काउंटर का निम्न रजिस्टर | 0xXXXXXXXXX |
एसटीके_सीएमपीएलआर | 0xE000F010 | गिनती तुलना मूल्य कम रजिस्टर | 0xXXXXXXXXX |
प्रत्येक रजिस्टर का विस्तार से वर्णन इस प्रकार है।
सिस्टम काउंटर नियंत्रण रजिस्टर (STK_CTLR)
तालिका 5-3 SysTick नियंत्रण रजिस्टर
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:5] | सुरक्षित | RO | सुरक्षित | 0 |
4 |
तरीका |
RW |
गिनती मोड: 1: उल्टी गिनती;
0: गिनती करें। नोट: V3A के लिए अमान्य. |
0 |
3 |
एसटीआरई |
RW |
स्वचालित पुनः लोड गिनती सक्षम बिट:
1: तुलना मान तक गिनने के बाद पुनः 0 से गिनें, और 0 तक गिनने के बाद पुनः तुलना मान से गिनें; 0: ऊपर/नीचे उल्टी गिनती जारी रखें। नोट: V3A के लिए अमान्य. |
0 |
2 |
एसटीसीएलके |
RW |
काउंटरक्लॉक स्रोत चयन बिट:
1: समय आधार के रूप में HCLK; 0: समय आधार के रूप में HCLK/8. नोट: यह V3A के लिए अमान्य है, जो केवल समर्थन करता है समय आधार के रूप में एचसीएलके/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 |
टिप्पणी: V3A में रजिस्टर STK_CNTL और रजिस्टर STK_CNTH मिलकर एक 64-बिट सिस्टम काउंटर का निर्माण करते हैं।
सिस्टम काउंटर उच्च रजिस्टर (STK_CNTH)
तालिका 5-6 SysTick काउंटर उच्च रजिस्टर
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:0] | सीएनटीएच | RW | वर्तमान काउंटर काउंट मान 32 बिट अधिक है। इस रजिस्टर को 8-बिट/16-बिट/32-बिट द्वारा पढ़ा जा सकता है, लेकिन केवल 8-बिट द्वारा ही लिखा जा सकता है।
नोट: केवल V3A के लिए मान्य. |
0xXXXXXX XXX |
टिप्पणी: V3A में रजिस्टर STK_CNTL और रजिस्टर STK_CNTH मिलकर एक 64-बिट सिस्टम काउंटर का निर्माण करते हैं।
सिस्टम गणना तुलना मान निम्न रजिस्टर (STK_CMPLR)
तालिका 5-7 SysTick तुलना मूल्य कम रजिस्टर
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:0] | सीएमपीएल | RW | काउंटर तुलना मान को 32 बिट कम पर सेट करें। जब CMP मान और CNT मान बराबर होते हैं, तो STK इंटरप्ट ट्रिगर हो जाएगा। V3A के लिए, इस रजिस्टर को 8-बिट / 16-बिट / 32-बिट के रूप में पढ़ा जा सकता है, लेकिन केवल
8-बिट के रूप में लिखा गया है, और अन्य मॉडल सीमित नहीं हैं। |
0xXXXXXX XXX |
टिप्पणी: V3A में रजिस्टर STK_CMPLR और रजिस्टर STK_CMPHR मिलकर 64-बिट काउंटर तुलना मान बनाते हैं।
सिस्टम गणना तुलना मान उच्च रजिस्टर (STK_CMPHR)
तालिका 5-8 SysTick तुलना मूल्य उच्च रजिस्टर
अंश | नाम | पहुँच | विवरण | मान रीसेट करें |
[31:0] | सीएमपीएच | RW | काउंटर तुलना मान को 32 बिट अधिक सेट करें। जब CMP मान और CNT मान बराबर होंगे, तो STK इंटरप्ट ट्रिगर हो जाएगा।
इस रजिस्टर को 8-बिट/16-बिट/32-बिट द्वारा पढ़ा जा सकता है, लेकिन केवल 8-बिट द्वारा ही लिखा जा सकता है। नोट: केवल V3A के लिए मान्य. |
0xXXXXXX XXX |
टिप्पणी: V3A में रजिस्टर STK_CMPLR और रजिस्टर STK_CMPHR मिलकर 64-बिट काउंटर तुलना मान बनाते हैं।
प्रोसेसर कम-पावर सेटिंग्स
- किंगके वी3 श्रृंखला के माइक्रोप्रोसेसर कम स्थैतिक बिजली खपत प्राप्त करने के लिए WFI (इंटरप्ट के लिए प्रतीक्षा करें) निर्देश के माध्यम से स्लीप अवस्था का समर्थन करते हैं।
- PFIC के सिस्टम नियंत्रण रजिस्टर (PFIC_SCTLR) के साथ, विभिन्न स्लीप मोड और WFE निर्देशों को कार्यान्वित किया जा सकता है।
नींद में प्रवेश करें
- किंगके वी3 सीरीज के माइक्रोप्रोसेसर दो तरीकों से स्लीप में जा सकते हैं, वेट फॉर इंटरप्ट (WFI) और वेट फॉर इवेंट (WFE)। WFI विधि का अर्थ है कि माइक्रोप्रोसेसर स्लीप में चला जाता है, किसी इंटरप्ट के जागने का इंतजार करता है, और फिर निष्पादित करने के लिए संबंधित इंटरप्ट के लिए जागता है। WFE विधि का अर्थ है कि माइक्रोप्रोसेसर स्लीप में चला जाता है, किसी इवेंट के जागने का इंतजार करता है, और पहले से रुके हुए प्रोग्राम फ्लो को निष्पादित करना जारी रखने के लिए जागता है।
- मानक RISC-V WFI निर्देश का समर्थन करता है, और WFI विधि द्वारा स्लीप में प्रवेश करने के लिए WFI कमांड को सीधे निष्पादित किया जा सकता है। WFE विधि के लिए, सिस्टम नियंत्रण रजिस्टर PFIC_SCTLR में WFITOWFE बिट का उपयोग WFE प्रोसेसिंग के रूप में बाद के WFI कमांड को नियंत्रित करने के लिए किया जाता है ताकि स्लीप में प्रवेश करने के लिए WFE विधि को प्राप्त किया जा सके।
- नींद की गहराई को PFIC_SCTLR में SLEEPDEEP बिट के अनुसार नियंत्रित किया जाता है।
- यदि PFIC_SCTLR रजिस्टर में SLEEPDEEP को शून्य कर दिया जाता है, तो माइक्रोप्रोसेसर स्लीप मोड में प्रवेश करता है और SysTick और वेक-अप लॉजिक के भाग को छोड़कर आंतरिक इकाई घड़ी को बंद करने की अनुमति दी जाती है।
- यदि PFIC_SCTLR रजिस्टर में SLEEPDEEP सेट है, तो माइक्रोप्रोसेसर डीप स्लीप मोड में प्रवेश करता है और सभी सेल घड़ियों को बंद करने की अनुमति दी जाती है।
- जब माइक्रोप्रोसेसर डीबग मोड में होता है, तो किसी भी प्रकार के स्लीप मोड में प्रवेश करना संभव नहीं होता है।
नींद जागना
किंगके वी3 श्रृंखला माइक्रोप्रोसेसरों को डब्ल्यूएफआई और डब्ल्यूएफई के कारण निष्क्रिय होने के बाद निम्नलिखित तरीकों से जगाया जा सकता है।
WFI विधि के निष्क्रिय हो जाने के बाद, इसे निम्न प्रकार से जगाया जा सकता है:
- माइक्रोप्रोसेसर को इंटरप्ट कंट्रोलर द्वारा प्रतिक्रिया दिए गए इंटरप्ट स्रोत द्वारा जगाया जा सकता है। जागने के बाद, माइक्रोप्रोसेसर सबसे पहले इंटरप्ट फ़ंक्शन को निष्पादित करता है।
- स्लीप मोड में प्रवेश करें, डिबग अनुरोध माइक्रोप्रोसेसर को जगा सकता है और गहरी नींद में प्रवेश कर सकता है, डिबग अनुरोध माइक्रोप्रोसेसर को जगा नहीं सकता है।
WFE विधि के निष्क्रिय हो जाने के बाद, माइक्रोप्रोसेसर को निम्नलिखित द्वारा जगाया जा सकता है।
- आंतरिक या बाह्य घटनाएं, जब इंटरप्ट नियंत्रक को कॉन्फ़िगर करने की कोई आवश्यकता नहीं होती है, तो जाग जाती हैं और प्रोग्राम को निष्पादित करना जारी रखती हैं।
- यदि कोई व्यवधान स्रोत सक्षम है, तो व्यवधान उत्पन्न होने पर माइक्रोप्रोसेसर जागृत हो जाता है, और जागृत होने के बाद, माइक्रोप्रोसेसर सबसे पहले व्यवधान फ़ंक्शन को निष्पादित करता है।
- यदि PFIC_SCTLR में SEVONPEND बिट कॉन्फ़िगर किया गया है, तो इंटरप्ट कंट्रोलर इंटरप्ट को सक्षम नहीं करता है, लेकिन जब एक नया इंटरप्ट पेंडिंग सिग्नल उत्पन्न होता है (पहले से उत्पन्न पेंडिंग सिग्नल प्रभावी नहीं होता है), तो यह माइक्रोप्रोसेसर को भी जगा सकता है, और संबंधित इंटरप्ट पेंडिंग फ्लैग को जागने के बाद मैन्युअल रूप से साफ़ करने की आवश्यकता होती है।
- स्लीप मोड में प्रवेश करने पर डिबग अनुरोध माइक्रोप्रोसेसर को जगा सकता है और गहरी नींद में प्रवेश करा सकता है, डिबग अनुरोध माइक्रोप्रोसेसर को जगा नहीं सकता है।
- इसके अतिरिक्त, PFIC_SCTLR में SLEEPONEXIT बिट को कॉन्फ़िगर करके वेक-अप के बाद माइक्रोप्रोसेसर की स्थिति को नियंत्रित किया जा सकता है।
- SLEEPONEXIT सेट है और अंतिम स्तर इंटरप्ट रिटर्न निर्देश (mret) WFI मोड स्लीप को ट्रिगर करेगा।
SLEEPONEXIT को बिना किसी प्रभाव के हटा दिया गया है।
V3 श्रृंखला माइक्रोप्रोसेसरों से लैस विभिन्न MCU उत्पाद विभिन्न स्लीप मोड को अपना सकते हैं, विभिन्न बाह्य उपकरणों और घड़ियों को बंद कर सकते हैं, PFIC_SCTLR के विभिन्न कॉन्फ़िगरेशन के अनुसार विभिन्न पावर प्रबंधन नीतियों और वेक-अप विधियों को लागू कर सकते हैं और विभिन्न कम-पावर मोड का एहसास कर सकते हैं।
डीबग समर्थन
- किंगके वी3 सीरीज माइक्रोप्रोसेसरों में एक हार्डवेयर डिबग मॉड्यूल शामिल है जो जटिल डिबगिंग ऑपरेशन का समर्थन करता है। जब माइक्रोप्रोसेसर को निलंबित कर दिया जाता है, तो डिबग मॉड्यूल अमूर्त कमांड, प्रोग्राम बफर परिनियोजन निर्देश आदि के माध्यम से माइक्रोप्रोसेसर के जीपीआर, सीएसआर, मेमोरी, बाहरी डिवाइस आदि तक पहुंच सकता है। डिबग मॉड्यूल माइक्रोप्रोसेसर के संचालन को निलंबित और फिर से शुरू कर सकता है।
- डिबग मॉड्यूल RISC-V बाह्य डिबग समर्थन संस्करण 0.13.2 विनिर्देश का अनुसरण करता है, विस्तृत दस्तावेज़ RISC-V अंतर्राष्ट्रीय से डाउनलोड किया जा सकता है webसाइट।
डिबग मॉड्यूल
- माइक्रोप्रोसेसर के अंदर डिबग मॉड्यूल, जो डिबग होस्ट द्वारा जारी डिबग ऑपरेशन करने में सक्षम है, में शामिल है।
- डिबग इंटरफ़ेस के माध्यम से रजिस्टरों तक पहुंच
- डिबग इंटरफ़ेस के माध्यम से माइक्रोप्रोसेसर को रीसेट, निलंबित और फिर से शुरू करें
- डिबग इंटरफ़ेस के माध्यम से मेमोरी, निर्देश रजिस्टर और बाहरी डिवाइस को पढ़ें और लिखें
- डिबग इंटरफ़ेस के माध्यम से अनेक मनमाने निर्देशों को तैनात करें
- डिबग इंटरफ़ेस के माध्यम से सॉफ़्टवेयर ब्रेकपॉइंट सेट करें
- डिबग इंटरफ़ेस के माध्यम से हार्डवेयर ब्रेकपॉइंट सेट करें
- अमूर्त कमांड के स्वचालित निष्पादन का समर्थन करें
- एकल-चरण डिबगिंग का समर्थन करें
- टिप्पणी: V3A हार्डवेयर ब्रेकपॉइंट का समर्थन नहीं करता है, V3B हार्डवेयर ब्रेकपॉइंट निर्देश पता मिलान का समर्थन करता है, और V3C हार्डवेयर ब्रेकपॉइंट निर्देश पता और डेटा पता मिलान का समर्थन करता है।
- डिबगिंग मॉड्यूल के आंतरिक रजिस्टर 7-बिट एड्रेस कोड का उपयोग करते हैं, और निम्नलिखित रजिस्टरों को किंगके वी3 श्रृंखला माइक्रोप्रोसेसरों के अंदर कार्यान्वित किया जाता है।
तालिका 7-1 डीबग मॉड्यूल रजिस्टर सूची
नाम | पहुँच पता | विवरण |
डेटा0 | 0x04 | डेटा रजिस्टर 0, डेटा के अस्थायी भंडारण के लिए इस्तेमाल किया जा सकता है |
डेटा1 | 0x05 | डेटा रजिस्टर 1, डेटा के अस्थायी भंडारण के लिए इस्तेमाल किया जा सकता है |
विनियंत्रण | 0x10 | डिबग मॉड्यूल नियंत्रण रजिस्टर |
डीएमस्टेटस | 0x11 | डीबग मॉड्यूल स्थिति रजिस्टर |
हार्टइन्फो | 0x12 | माइक्रोप्रोसेसर स्थिति रजिस्टर |
एब्सट्रैक्ट | 0x16 | सार कमांड स्थिति रजिस्टर |
आज्ञा | 0x17 | सार कमांड रजिस्टर |
सार ऑटो | 0x18 | सार कमांड स्वचालित निष्पादन |
प्रोगबफ0-7 | 0x20-0x27 | निर्देश कैश रजिस्टर 0-7 |
हाल्टसम0 | 0x40 | विराम स्थिति रजिस्टर |
- डीबग होस्ट डीकंट्रोल रजिस्टर को कॉन्फ़िगर करके माइक्रोप्रोसेसर के सस्पेंड, रिज्यूम, रीसेट आदि को नियंत्रित कर सकता है। RISC-V मानक तीन प्रकार के अमूर्त कमांड को परिभाषित करता है: एक्सेस रजिस्टर, फास्ट एक्सेस और एक्सेस मेमोरी।
- किंगके वी3ए माइक्रोप्रोसेसर केवल रजिस्टर एक्सेस का समर्थन करता है, अन्य मॉडल रजिस्टर और मेमोरी एक्सेस का समर्थन करते हैं, लेकिन तेज़ एक्सेस का नहीं। रजिस्टरों (जीपीआर, सीएसआर) तक पहुंच और मेमोरी तक निरंतर पहुंच को अमूर्त कमांड द्वारा महसूस किया जा सकता है।
- डिबग मॉड्यूल 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 | ackhavereset | W1 | 0: अमान्य
1: माइक्रोप्रोसेसर के हार्वेस्ट स्टेटस बिट को साफ़ करें |
0 |
[27:2] | सुरक्षित | RO | सुरक्षित | 0 |
1 | एनडीएमरीसेट | RW | 0: रीसेट साफ़ करें
1: डिबग मॉड्यूल के अलावा संपूर्ण सिस्टम को रीसेट करें |
0 |
0 | निष्क्रिय करें | RW | 0: डिबग मॉड्यूल रीसेट करें
1: डिबग मॉड्यूल ठीक से काम करता है |
0 |
डीबग मॉड्यूल स्थिति रजिस्टर (डीएम स्थिति)
- इस रजिस्टर का उपयोग डिबग मॉड्यूल की स्थिति को इंगित करने के लिए किया जाता है और यह केवल पढ़ने के लिए रजिस्टर है जिसमें प्रत्येक बिट का निम्नलिखित विवरण होता है।
मेज़ 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: डिबगिंग मॉड्यूल प्रमाणित हो गया है |
0x1 |
[6:4] | सुरक्षित | RO | सुरक्षित | 0 |
[3:0] | संस्करण | RO | डिबगिंग सिस्टम समर्थन आर्किटेक्चर संस्करण 0010: V0.13 | 0x2 |
माइक्रोप्रोसेसर स्थिति रजिस्टर (हार्टइन्फो)
इस रजिस्टर का उपयोग डिबग होस्ट को माइक्रोप्रोसेसर के बारे में जानकारी प्रदान करने के लिए किया जाता है और यह एक रीड-ओनली रजिस्टर है, जिसके प्रत्येक बिट का वर्णन इस प्रकार है।
तालिका 7-6 हार्टइन्फो रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:24] | सुरक्षित | RO | सुरक्षित | 0 |
[23:20] | खरोंचना | RO | समर्थित स्क्रैच रजिस्टरों की संख्या | 0x3 |
[19:17] | सुरक्षित | RO | सुरक्षित | 0 |
16 | डेटा एक्सेस | RO | 0: डेटा रजिस्टर को CSR पते पर मैप किया गया है
1: डेटा रजिस्टर को मेमोरी एड्रेस पर मैप किया जाता है |
0x1 |
[15:12] | डेटा का आकार | RO | डेटा रजिस्टरों की संख्या | 0x2 |
[11:0] | डेटा जोड़ें |
RO |
डेटा रजिस्टर data0 का ऑफ़सेट पता,
जिसका आधार पता 0xe0000000 है, विशिष्ट पठन के अधीन है। |
0xXXX |
सार कमांड नियंत्रण और स्थिति रजिस्टर (सार)
इस रजिस्टर का उपयोग एब्सट्रैक्ट कमांड के निष्पादन को इंगित करने के लिए किया जाता है। डिबग होस्ट इस रजिस्टर को पढ़कर यह जान सकता है कि अंतिम एब्सट्रैक्ट कमांड निष्पादित हुआ है या नहीं और यह जाँच सकता है कि एब्सट्रैक्ट कमांड के निष्पादन के दौरान कोई त्रुटि उत्पन्न हुई है या नहीं और त्रुटि का प्रकार क्या है, जिसका विवरण नीचे विस्तार से दिया गया है।
तालिका 7-7 सार रजिस्टर परिभाषाएँ
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:29] | सुरक्षित | RO | सुरक्षित | 0 |
[28:24] | प्रोगबफसाइज़ | RO | प्रोग्राम बफर प्रोग्राम की संख्या को इंगित करता है
कैश रजिस्टर |
0x8 |
[23:13] | सुरक्षित | RO | सुरक्षित | 0 |
12 | व्यस्त | RO | 0: कोई अमूर्त आदेश निष्पादित नहीं हो रहा है
1: अमूर्त आदेश निष्पादित किए जा रहे हैं नोट: निष्पादन के बाद, हार्डवेयर साफ़ हो जाता है। |
0 |
11 | सुरक्षित | RO | सुरक्षित | 0 |
[10:8] | सीएमडीईआर | RW | सार आदेश त्रुटि प्रकार 000: कोई त्रुटि नहीं
001: कमांड, एब्सट्रैक्ट, एब्सट्रैक्ट ऑटो रजिस्टरों में लिखने या डेटा और प्रोगबफ रजिस्टरों को पढ़ने और लिखने के लिए एब्सट्रैक्ट कमांड निष्पादन 010: वर्तमान अमूर्त कमांड का समर्थन नहीं करता है 011: अपवाद के साथ अमूर्त कमांड का निष्पादन 100: माइक्रोप्रोसेसर निलंबित या अनुपलब्ध नहीं है और अमूर्त कमांड निष्पादित नहीं कर सकता है 101: बस त्रुटि 110: संचार के दौरान पैरिटी बिट त्रुटि 111: अन्य त्रुटियाँ नोट: बिट लेखन के लिए शून्य को साफ़ करने हेतु 1 का उपयोग किया जाता है। |
0 |
[7:4] | सुरक्षित | RO | सुरक्षित | 0 |
[3:0] | छूट | RO | डेटा रजिस्टरों की संख्या | 0x2 |
- डिबगिंग होस्ट, अमूर्त कमांड रजिस्टर में विभिन्न कॉन्फ़िगरेशन मान लिखकर GPRs, CSR रजिस्टरों और मेमोरी तक पहुंच सकते हैं।
- रजिस्टरों तक पहुँचने पर, कमांड रजिस्टर बिट्स को निम्नानुसार परिभाषित किया जाता है।
- तालिका 7-8 रजिस्टरों तक पहुँचते समय कमांड रजिस्टर की परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:24] | cmd प्रकार | WO | अमूर्त कमांड प्रकार 0: एक्सेस रजिस्टर;
1: त्वरित पहुँच (समर्थित नहीं); 2: मेमोरी तक पहुंच. |
0 |
23 | सुरक्षित | WO | सुरक्षित | 0 |
[22:20] | आरसाइज़ | WO | एक्सेस रजिस्टर डेटा बिट चौड़ाई 000: 8-बिट
001: 16-बिट 010: 32-बिट |
0 |
011: 64-बिट (समर्थित नहीं) 100: 128-बिट (समर्थित नहीं)
नोट: फ्लोटिंग-पॉइंट रजिस्टरों तक पहुँचते समय एफपीआर में केवल 32-बिट पहुंच समर्थित है। |
||||
19 | aarpostइंक्रीमेंट | WO | 0: कोई प्रभाव नहीं
1: रजिस्टर तक पहुंचने के बाद regno का मान स्वचालित रूप से बढ़ाएं |
0 |
18 | पोस्ट एग्जीक्यूटिव | WO | 0: कोई प्रभाव नहीं
1:अमूर्त कमांड निष्पादित करें और फिर प्रोगबफ में कमांड निष्पादित करें |
0 |
17 | स्थानांतरण | WO | 0: write द्वारा निर्दिष्ट ऑपरेशन निष्पादित न करें
1: लेखन द्वारा निर्दिष्ट हेरफेर को निष्पादित करें |
0 |
16 | लिखना | WO | 0: निर्दिष्ट रजिस्टर से डेटा को data0 में कॉपी करें 1: data0 रजिस्टर से डेटा को निर्दिष्ट रजिस्टर में कॉपी करें |
0 |
[15:0] | रेग्नो | WO | एक्सेस रजिस्टर निर्दिष्ट करें 0x0000-0x0fff CSR हैं 0x1000-0x101f GPR हैं |
0 |
मेमोरी तक पहुँचते समय, कमांड रजिस्टर में बिट्स को निम्नानुसार परिभाषित किया जाता है।
तालिका 7-9 मेमोरी एक्सेस करते समय रजिस्टर कमांड की परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:24] | cmd प्रकार | WO | अमूर्त कमांड प्रकार 0: एक्सेस रजिस्टर;
1: तेज़ पहुँच (समर्थित नहीं); 2: मेमोरी तक पहुंचें. |
0 |
23 | आमवर्चुअल | WO | 0: भौतिक पते तक पहुंच;
1: वर्चुअल पता तक पहुंचें. |
0 |
[22:20] | भुजा का आकार | WO | एक्सेस मेमोरी डेटा बिट चौड़ाई 000: 8-बिट;
001: 16-बिट; 010: 32-बिट; 011: 64-बिट (समर्थित नहीं); 100: 128-बिट (समर्थित नहीं); |
0 |
19 | aampओस्टिन्क्रीमेंट | WO | 0: कोई प्रभाव नहीं;
1: मेमोरी तक सफलतापूर्वक पहुंचने के बाद, आर्म साइज द्वारा कॉन्फ़िगर की गई बिट चौड़ाई के अनुरूप बाइट्स की संख्या से डेटा1 रजिस्टर में संग्रहीत पता बढ़ाएं। Aamsize=0, बाइट द्वारा अभिगमित, डेटा1 प्लस 1. Aamsize=1, आधे शब्द द्वारा अभिगमित, डेटा1 प्लस 2. aamsize=2, बिट द्वारा अभिगमित, डेटा1 प्लस 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: जब data0 में डेटा मेमोरी में डेटा बिट्स के साथ OR हो जाता है, तो परिणाम मेमोरी में लिख दिया जाता है (केवल वर्ड एक्सेस समर्थित है)। 11: मेमोरी में डेटा बिट्स के साथ data0 में डेटा का योग करने के बाद, परिणाम को मेमोरी में लिखें (केवल वर्ड एक्सेस समर्थित है)। पढ़ना: 00, 01, 10, 11: मेमोरी से सीधे 0 पढ़ें। |
0 |
[13:0] | संरक्षित | RO | सुरक्षित |
अमूर्त आदेश स्वचालित निष्पादन रजिस्टर (अमूर्त ऑटो)
इस रजिस्टर का उपयोग डिबगिंग मॉड्यूल को कॉन्फ़िगर करने के लिए किया जाता है। डिबगिंग मॉड्यूल के प्रोगबफ़क्स और डेटा को पढ़ते और लिखते समय, एब्सट्रैक्ट कमांड को फिर से निष्पादित किया जा सकता है।
इस रजिस्टर का विवरण इस प्रकार है:
तालिका 7-10 सार ऑटो रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:16] | ऑटोएक्सेकप्रोगबफ | RW | यदि कोई बिट सेट किया गया है, तो प्रोग्बफक्स के संगत पठन और लेखन के कारण कमांड रजिस्टर में अमूर्त कमांड पुनः निष्पादित होगा।
नोट: V3 श्रृंखला 8 प्रोगबफ्स के साथ डिज़ाइन की गई है, बिट्स के अनुरूप [23:16]. |
0 |
[15:12] | संरक्षित | RO | सुरक्षित | 0 |
[11:0] | ऑटोएक्सेकडाटा |
RW |
यदि किसी बिट को 1 पर सेट किया जाता है, तो डेटा रजिस्टर के संगत पठन और लेखन के कारण कमांड रजिस्टर में अमूर्त कमांड पुनः निष्पादित हो जाएगा।
नोट: V3 श्रृंखला दो डेटा के साथ डिज़ाइन की गई है रजिस्टर, बिट्स [1:0] के अनुरूप. |
0 |
निर्देश कैश रजिस्टर (progbufx)
इस रजिस्टर का उपयोग किसी भी निर्देश को संग्रहीत करने और संबंधित ऑपरेशन को तैनात करने के लिए किया जाता है, जिसमें 8 शामिल हैं, जिन्हें अंतिम निष्पादन पर ध्यान देने की आवश्यकता होती है जिसे "ब्रेक" या "सी.ईब्रेक" होना चाहिए।
तालिका 7-11 प्रोगबफ रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:0] | प्रोगबफ | RW | कैश संचालन के लिए निर्देश एन्कोडिंग, जो
संपीड़न निर्देश शामिल हो सकते हैं |
0 |
स्थिति रजिस्टर रोकें (haltsum0)
इस रजिस्टर का उपयोग यह बताने के लिए किया जाता है कि माइक्रोप्रोसेसर निलंबित है या नहीं। प्रत्येक बिट माइक्रोप्रोसेसर की निलंबित स्थिति को दर्शाता है, और जब केवल एक कोर होता है, तो इसे इंगित करने के लिए इस रजिस्टर के केवल सबसे निचले बिट का उपयोग किया जाता है।
तालिका 7-12 haltsum0 रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:1] | सुरक्षित | RO | सुरक्षित | 0 |
0 | हाल्टसम0 | RO | 0: माइक्रोप्रोसेसर सामान्य रूप से कार्य करता है
1: माइक्रोप्रोसेसर स्टॉप |
0 |
- डिबग मॉड्यूल के उपर्युक्त रजिस्टरों के अलावा, डिबग फ़ंक्शन में कुछ CSR रजिस्टर भी शामिल होते हैं, मुख्य रूप से डिबग नियंत्रण और स्थिति रजिस्टर dcsr और डिबग निर्देश सूचक dpc, जिनका विस्तार से वर्णन नीचे किया गया है।
- डीबग नियंत्रण और स्थिति रजिस्टर (dcsr)
तालिका 7-13 डीसीएसआर रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:28] | xडिबगवर | डीआरओ | 0000: बाह्य डिबगिंग समर्थित नहीं है 0100: मानक बाह्य डिबगिंग का समर्थन करें
1111: बाहरी डिबगिंग समर्थित है, लेकिन आवश्यकताओं को पूरा नहीं करती है विनिर्देश |
0x4 |
[27:16] | सुरक्षित | डीआरओ | सुरक्षित | 0 |
15 | तोड़ना | डीआरडब्लू | 0: मशीन मोड में ब्रेक कमांड विशेषाधिकार में वर्णित अनुसार व्यवहार करता है file
1: मशीन मोड में ब्रेक कमांड डिबग मोड में प्रवेश कर सकता है |
0 |
[14:13] | सुरक्षित | डीआरओ | सुरक्षित | 0 |
12 | टूटना |
डीआरडब्लू |
0: उपयोगकर्ता मोड में ब्रेक कमांड विशेषाधिकार में वर्णित अनुसार व्यवहार करता है file
1: उपयोगकर्ता मोड में ब्रेक कमांड डिबग मोड में प्रवेश कर सकता है |
0 |
11 | कदम | डीआरडब्लू | 0: एकल-चरण डिबगिंग के अंतर्गत व्यवधान अक्षम हैं
1: एकल-चरण डिबगिंग के अंतर्गत इंटरप्ट सक्षम करें |
0 |
10 | सुरक्षित | डीआरओ | सुरक्षित | 0 |
9 | रुकने का समय | डीआरडब्लू | 0: सिस्टम टाइमर डीबग मोड में चल रहा है
1: सिस्टम टाइमर डीबग मोड में बंद हो जाता है |
0 |
[8:6] | कारण | डीआरओ | डिबगिंग में प्रवेश करने के कारण
001: ब्रेक कमांड के रूप में डिबगिंग दर्ज करना (प्राथमिकता 3) 010: ट्रिगर मॉड्यूल के रूप में डिबगिंग में प्रवेश करना (प्राथमिकता 4, उच्चतम) 011: विराम अनुरोध के रूप में डिबगिंग दर्ज करना (प्राथमिकता 1) 100: एकल-चरण डिबगिंग के रूप में डिबगिंग (प्राथमिकता 0, सबसे कम) |
0 |
101: माइक्रोप्रोसेसर रीसेट के बाद सीधे डिबग मोड में प्रवेश करें (प्राथमिकता 2) अन्य: आरक्षित | ||||
[5:3] | सुरक्षित | डीआरओ | सुरक्षित | 0 |
2 | कदम | डीआरडब्लू | 0: एकल-चरण डिबगिंग बंद करें
1: एकल-चरण डिबगिंग सक्षम करें |
0 |
[1:0] | पिछला | डीआरडब्लू | विशेषाधिकार मोड 00: उपयोगकर्ता मोड
01: पर्यवेक्षक मोड (समर्थित नहीं) 10: आरक्षित 11: मशीन मोड नोट: डिबग मोड में प्रवेश करते समय विशेषाधिकार प्राप्त मोड को रिकॉर्ड करें, डिबगर डिबग से बाहर निकलते समय विशेषाधिकार प्राप्त मोड को संशोधित करने के लिए इस मान को संशोधित कर सकता है |
0 |
डिबग मोड प्रोग्राम पॉइंटर (DPC)
- इस रजिस्टर का उपयोग माइक्रोप्रोसेसर के डिबग मोड में प्रवेश करने के बाद निष्पादित होने वाले अगले निर्देश का पता संग्रहीत करने के लिए किया जाता है, और इसका मान डिबग में प्रवेश करने के कारण के आधार पर विभिन्न नियमों के साथ अद्यतन किया जाता है। डीपीसी रजिस्टर का विस्तार से वर्णन इस प्रकार किया गया है।
तालिका 7-14 डीपीसी रजिस्टर परिभाषाएँ
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:0] | डीपीसी | डीआरडब्लू | निर्देश पता | 0 |
रजिस्टरों को अद्यतन करने के नियम निम्नलिखित तालिका में दर्शाए गए हैं।
तालिका 7-15 डीपीसी अद्यतन नियम
डिबगिंग विधि दर्ज करें | डीपीसी नियम अपडेट करें |
तोड़ना | ईब्रेक निर्देश का पता |
एकल कदम | वर्तमान निर्देश के अगले निर्देश का निर्देश पता |
ट्रिगर मॉड्यूल | अस्थायी रूप से समर्थित नहीं |
रुकने का अनुरोध | डीबग में प्रवेश करते समय निष्पादित किए जाने वाले अगले निर्देश का पता |
डीबग इंटरफ़ेस
- मानक जे से अलगTAG RISC-V द्वारा परिभाषित इंटरफ़ेस, QingKe V3 श्रृंखला माइक्रोप्रोसेसर 1- a वायर / 2-वायर सीरियल डिबग इंटरफ़ेस को अपनाता है और WCH डिबग इंटरफ़ेस प्रोटोकॉल V1.0 का अनुसरण करता है।
- डिबग इंटरफ़ेस डिबग होस्ट और डिबग मॉड्यूल के बीच संचार के लिए जिम्मेदार है और डिबग मॉड्यूल रजिस्टरों के लिए डिबग होस्ट के पढ़ने/लिखने के संचालन को कार्यान्वित करता है।
- WCH ने WCH_Link को डिज़ाइन किया तथा इसके योजनाबद्ध और प्रोग्राम बाइनरी को ओपन सोर्स किया fileजिसका उपयोग RISC-V आर्किटेक्चर के सभी माइक्रोप्रोसेसरों को डिबग करने के लिए किया जा सकता है।
- विशिष्ट डिबग इंटरफ़ेस प्रोटोकॉल के लिए WCH डिबग प्रोटोकॉल मैनुअल देखें।
सीएसआर रजिस्टर सूची
- RISC-V आर्किटेक्चर माइक्रोप्रोसेसर की परिचालन स्थिति को नियंत्रित करने और रिकॉर्ड करने के लिए कई नियंत्रण और स्थिति रजिस्टर (CSR) परिभाषित करता है।
- पिछले अनुभाग में कुछ सीएसआर का परिचय दिया गया है, और यह अध्याय क्विंगके वी3 श्रृंखला माइक्रोप्रोसेसरों में कार्यान्वित सीएसआर रजिस्टरों का विस्तार से वर्णन करेगा।
सीएसआर रजिस्टर सूची
तालिका 8-1 माइक्रोप्रोसेसर सीएसआर रजिस्टरों की सूची
प्रकार | नाम | सीएसआर पता | पहुँच | विवरण |
RISC-वी
मानक सीएसआर |
मार्चिड | 0xF12 | एमआरओ | आर्किटेक्चर नंबर रजिस्टर |
मिम्पिड | 0xF13 | एमआरओ | हार्डवेयर कार्यान्वयन क्रमांकन रजिस्टर | |
एमस्टेटस | 0x300 | एमआरडब्लू | स्थिति रजिस्टर | |
मीसा | 0x301 | एमआरडब्लू | हार्डवेयर निर्देश सेट रजिस्टर | |
एमटीवीईसी | 0x305 | एमआरडब्लू | अपवाद आधार पता रजिस्टर | |
एमस्क्रैच | 0x340 | एमआरडब्लू | मशीन मोड stagरजिस्टर | |
एमईपीसी | 0x341 | एमआरडब्लू | अपवाद प्रोग्राम सूचक रजिस्टर | |
mकारण | 0x342 | एमआरडब्लू | अपवाद कारण रजिस्टर | |
एमटीवीएल | 0x343 | एमआरडब्लू | अपवाद मान रजिस्टर | |
पीएमपीसीएफजी | 0x3A0+i | एमआरडब्लू | PMP कॉन्फ़िगरेशन रजिस्टर | |
pmpaddr | 0x3B0+i | एमआरडब्लू | पीएमपी पता रजिस्टर | |
टीसेलेक्ट | 0x7A0 | एमआरडब्लू | डिबग ट्रिगर चयन रजिस्टर | |
tdata1 | 0x7A1 | एमआरडब्लू | डिबग ट्रिगर डेटा रजिस्टर 1 | |
tdata2 | 0x7A2 | एमआरडब्लू | डिबग ट्रिगर डेटा रजिस्टर 2 | |
डीसीएसआर | 0x7B0 | डीआरडब्लू | डिबग नियंत्रण और स्थिति रजिस्टर | |
डीपीसी | 0x7B1 | डीआरडब्लू | डिबग मोड प्रोग्राम पॉइंटर रजिस्टर | |
dscratch0 | 0x7B2 | डीआरडब्लू | डिबग मोडtagरजिस्टर 0 | |
dscratch1 | 0x7B3 | डीआरडब्लू | डिबग मोडtagरजिस्टर 1 | |
विक्रेता परिभाषित सीएसआर |
गिंटेनर | 0x800 | यूआरडब्लू | वैश्विक व्यवधान सक्षम रजिस्टर |
intsyscr | 0x804 | यूआरडब्लू | इंटरप्ट सिस्टम नियंत्रण रजिस्टर | |
कोरसीजीआर | 0xBC0 | एमआरडब्लू | माइक्रोप्रोसेसर कॉन्फ़िगरेशन रजिस्टर | |
inestcr | 0xBC1 | एमआरडब्लू | इंटरप्ट नेस्टेड नियंत्रण रजिस्टर |
RISC-V मानक CSR रजिस्टर
- आर्किटेक्चर नंबर रजिस्टर (मार्चिड)
- यह रजिस्टर वर्तमान माइक्रोप्रोसेसर हार्डवेयर आर्किटेक्चर नंबर को इंगित करने के लिए एक रीड-ओनली रजिस्टर है, जो मुख्य रूप से विक्रेता कोड, आर्किटेक्चर कोड, सीरीज कोड और संस्करण कोड से बना है। उनमें से प्रत्येक को निम्नानुसार परिभाषित किया गया है।
तालिका 8-2 मार्चिड रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
31 | सुरक्षित | एमआरओ | सुरक्षित | 1 |
[30:26] | विक्रेता0 | एमआरओ | निर्माता कोड 0
अक्षर “W” कोड पर स्थिर |
0x17 |
[25:21] | विक्रेता1 | एमआरओ | निर्माता कोड1
अक्षर “C” कोड पर स्थिर |
0x03 |
[20:16] | विक्रेता2 | एमआरओ | निर्माता कोड 2
अक्षर “H” कोड पर स्थिर |
0x08 |
15 | सुरक्षित | एमआरओ | सुरक्षित | 1 |
[14:10] | मेहराब | एमआरओ | वास्तुकला कोड | 0x16 |
RISC-V आर्किटेक्चर अक्षर “V” कोड पर तय किया गया है | ||||
[9:5] | धारावाहिक | एमआरओ | श्रृंखला कोड
किंगके वी3 श्रृंखला, संख्या “3” पर स्थिर |
0x03 |
[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 |
- उनमें से, किंगके वी3ए माइक्रोप्रोसेसर, रजिस्टर 0 पर वापस पढ़ता है।
हार्डवेयर कार्यान्वयन क्रमांकन रजिस्टर (लिम्पिड)
- यह रजिस्टर मुख्य रूप से विक्रेता कोडों से बना होता है, जिनमें से प्रत्येक को निम्नानुसार परिभाषित किया गया है।
तालिका 8-4 पारदर्शी रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
31 | सुरक्षित | एमआरओ | सुरक्षित | 1 |
[30:26] | विक्रेता0 | एमआरओ | निर्माता कोड 0
अक्षर “W” कोड पर स्थिर |
0x17 |
[25:21] | विक्रेता1 | एमआरओ | निर्माता कोड1
अक्षर “C” कोड पर स्थिर |
0x03 |
[20:16] | विक्रेता2 | एमआरओ | निर्माता कोड 2
अक्षर “H” कोड पर स्थिर |
0x08 |
15 | सुरक्षित | एमआरओ | सुरक्षित | 1 |
[14:8] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
[7:4] | नाबालिग | एमआरओ | सबवर्सन संख्या | 0xX |
[3:0] | प्रमुख | एमआर0 | प्रमुख संस्करण संख्या | 0xX |
- यह रजिस्टर किसी भी मशीन कार्यान्वयन में पठनीय है, और किंगके वी3ए श्रृंखला प्रोसेसर में, यह रजिस्टर शून्य तक पढ़ता है।
मशीन मोड स्थिति रजिस्टर (mstatus)
- इस रजिस्टर का आंशिक वर्णन पिछले अनुभाग में किया गया है, तथा इसके सदस्यों की स्थिति इस प्रकार है।
तालिका 8-5 mstatus रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:13] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
[12:11] | एमपीपी | एमआरडब्लू | ब्रेक में प्रवेश करने से पहले विशेषाधिकार प्राप्त मोड | 0 |
[10:8] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
7 | एमपीआईई | एमआरडब्लू | किसी इंटरप्ट में प्रवेश करने से पहले इंटरप्ट सक्षम स्थिति | 0 |
[6:4] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
3 | MIE | एमआरडब्लू | मशीन मोड इंटरप्ट सक्षम करें | 0 |
[2:0] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
- MPP फ़ील्ड का उपयोग अपवाद या व्यवधान में प्रवेश करने से पहले विशेषाधिकार प्राप्त मोड को सहेजने के लिए किया जाता है और अपवाद या व्यवधान से बाहर निकलने के बाद विशेषाधिकार प्राप्त मोड को पुनर्स्थापित करने के लिए उपयोग किया जाता है। MIE वैश्विक व्यवधान सक्षम बिट है, और अपवाद या व्यवधान में प्रवेश करते समय, MPIE का मान MIE के मान पर अपडेट किया जाता है, और यह ध्यान दिया जाना चाहिए कि QingKe V3 श्रृंखला माइक्रोप्रोसेसरों में, MIE को नेस्टेड व्यवधानों के अंतिम स्तर से पहले 0 पर अपडेट नहीं किया जाएगा ताकि यह सुनिश्चित किया जा सके कि मशीन मोड में व्यवधान नेस्टिंग को निष्पादित करना जारी है। जब अपवाद या व्यवधान से बाहर निकला जाता है, तो माइक्रोप्रोसेसर MPP द्वारा सहेजे गए मशीन मोड पर वापस आ जाता है, और MIE को MPIE मान पर पुनर्स्थापित किया जाता है।
- QingKe V3 माइक्रोप्रोसेसर मशीन मोड और उपयोगकर्ता मोड का समर्थन करता है, यदि आपको माइक्रोप्रोसेसर को केवल मशीन मोड में काम करने की आवश्यकता है, तो आप बूट के आरंभीकरण में MPP को 0x3 पर सेट कर सकते हैं fileयानी, वापस लौटने के बाद यह हमेशा मशीन मोड में ही रहेगा।
हार्डवेयर निर्देश सेट रजिस्टर (मीसा)
- इस रजिस्टर का उपयोग माइक्रोप्रोसेसर की वास्तुकला और समर्थित निर्देश सेट एक्सटेंशन को इंगित करने के लिए किया जाता है, जिनमें से प्रत्येक का वर्णन इस प्रकार किया गया है।
तालिका 8-6 मीसा रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:30] | एमएक्सएल | एमआरओ | मशीन शब्द की लंबाई 1:32
2:64 3:128 |
1 |
[29:26] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
[25:0] | एक्सटेंशन | एमआरओ | निर्देश सेट एक्सटेंशन | x |
- एमएक्सएल का प्रयोग माइक्रोप्रोसेसर की शब्द लंबाई को इंगित करने के लिए किया जाता है, किंगके वी3 32-बिट माइक्रोप्रोसेसर हैं, तथा डोमेन 1 पर स्थिर है।
- एक्सटेंशन का उपयोग यह इंगित करने के लिए किया जाता है कि माइक्रोप्रोसेसर विस्तारित निर्देश सेट विवरण का समर्थन करता है, प्रत्येक एक्सटेंशन के एक वर्ग को इंगित करता है, इसका विस्तृत विवरण निम्नलिखित तालिका में दिखाया गया है।
तालिका 8-7 निर्देश सेट एक्सटेंशन विवरण
अंश | नाम | विवरण |
0 | A | परमाणु विस्तार |
1 | B | बिट-मैनिपुलेशन एक्सटेंशन के लिए अस्थायी रूप से आरक्षित |
2 | C | संपीडित विस्तार |
3 | D | डबल-प्रिसिज़न फ़्लोटिंग-पॉइंट एक्सटेंशन |
4 | E | RV32E बेस ISA |
5 | F | एकल परिशुद्धता फ़्लोटिंग-पॉइंट एक्सटेंशन |
6 | G | अतिरिक्त मानक एक्सटेंशन मौजूद हैं |
7 | H | हाइपरवाइजर एक्सटेंशन |
8 | I | RV32I/64I/128I बेस ISA |
9 | J | डायनामिकली ट्रांसलेटेड लैंग्वेजेज एक्सटेंशन के लिए अस्थायी रूप से आरक्षित |
10 | K | सुरक्षित |
11 | L | दशमलव फ़्लोटिंग-पॉइंट एक्सटेंशन के लिए अस्थायी रूप से आरक्षित |
12 | M | पूर्णांक गुणन/भाग विस्तार |
13 | N | उपयोगकर्ता-स्तर पर व्यवधान समर्थित |
14 | O | सुरक्षित |
15 | P | पैक्ड-SIMD एक्सटेंशन के लिए अस्थायी रूप से आरक्षित |
16 | Q | क्वाड-प्रिसिशन फ़्लोटिंग-पॉइंट एक्सटेंशन |
17 | R | सुरक्षित |
18 | S | पर्यवेक्षक मोड लागू किया गया |
19 | T | ट्रांजेक्शनल मेमोरी एक्सटेंशन के लिए अस्थायी रूप से आरक्षित |
20 | U | उपयोगकर्ता मोड लागू किया गया |
21 | V | वेक्टर एक्सटेंशन के लिए अस्थायी रूप से आरक्षित |
22 | W | सुरक्षित |
23 | X | गैर-मानक एक्सटेंशन मौजूद हैं |
24 | Y | सुरक्षित |
25 | Z | सुरक्षित |
- उदाहरणार्थampले, किंगके वी3ए माइक्रोप्रोसेसर के लिए, रजिस्टर मान 0x401001105 है, जिसका अर्थ है कि समर्थित निर्देश सेट आर्किटेक्चर RV32IMAC है, और इसमें उपयोगकर्ता मोड कार्यान्वयन है।
मशीन मोड अपवाद आधार पता रजिस्टर (mtvec)
- इस रजिस्टर का उपयोग अपवाद या इंटरप्ट हैंडलर के आधार पते को संग्रहीत करने के लिए किया जाता है और निचले दो बिट्स का उपयोग वेक्टर तालिका के मोड और पहचान विधि को कॉन्फ़िगर करने के लिए किया जाता है जैसा कि अनुभाग 3.2 में वर्णित है।
मशीन मोड staging रजिस्टर (mscratch)
तालिका 8-8 mscratch रजिस्टर परिभाषाएँ
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:0] | एमस्क्रैच | एमआरडब्लू | आधार सामग्री भंडारण | 0 |
यह रजिस्टर अस्थायी डेटा भंडारण के लिए मशीन मोड में 32-बिट पठनीय और लिखने योग्य रजिस्टर है। उदाहरण के लिएampले, अपवाद या इंटरप्ट हैंडलर में प्रवेश करते समय, उपयोगकर्ता स्टैक पॉइंटर SP इस रजिस्टर में संग्रहीत होता है और इंटरप्ट स्टैक पॉइंटर SP रजिस्टर को असाइन किया जाता है। अपवाद या इंटरप्ट से बाहर निकलने के बाद, उपयोगकर्ता स्टैक पॉइंटर SP के मान को स्क्रैच से पुनर्स्थापित करें। यानी, इंटरप्ट स्टैक और उपयोगकर्ता स्टैक को अलग किया जा सकता है।
मशीन मोड अपवाद प्रोग्राम पॉइंटर रजिस्टर (मानचित्र)
तालिका 8-9 mepc रजिस्टर परिभाषाएँ
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:0] | एमईपीसी | एमआरडब्लू | अपवाद प्रक्रिया सूचक | 0 |
- इस रजिस्टर का उपयोग अपवाद या व्यवधान दर्ज करते समय प्रोग्राम पॉइंटर को सहेजने के लिए किया जाता है।
- इसका उपयोग अपवाद या व्यवधान उत्पन्न होने पर अपवाद दर्ज करने से पहले अनुदेश पीसी सूचक को सहेजने के लिए किया जाता है, और mepc का उपयोग रिटर्न पते के रूप में किया जाता है जब अपवाद या व्यवधान को संभाला जाता है और अपवाद या व्यवधान वापसी के लिए उपयोग किया जाता है।
- हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि.
- जब कोई अपवाद उत्पन्न होता है, तो mepc को वर्तमान में अपवाद उत्पन्न करने वाले अनुदेश के PC मान पर अद्यतन कर दिया जाता है।
- जब कोई व्यवधान उत्पन्न होता है, तो mepc को अगले निर्देश के PC मान पर अद्यतन कर दिया जाता है।
- जब आपको अपवाद को संसाधित करने के बाद अपवाद को वापस करने की आवश्यकता होती है, तो आपको mepc के मान को संशोधित करने पर ध्यान देना चाहिए, और अधिक विवरण अध्याय 2 अपवाद में पाया जा सकता है।
मशीन मोड अपवाद कारण रजिस्टर (mcause)
तालिका 8-10 mकारण रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
31 | रुकावट डालना | एमआरडब्लू | व्यवधान संकेत फ़ील्ड 0: अपवाद
1: व्यवधान |
0 |
[30:0] | अपवाद कोड | एमआरडब्लू | अपवाद कोड के लिए, विवरण हेतु तालिका 2-1 देखें | 0 |
- इस रजिस्टर का उपयोग मुख्य रूप से अपवाद के कारण या इंटरप्ट की इंटरप्ट संख्या को संग्रहीत करने के लिए किया जाता है। इसका उच्चतम बिट इंटरप्ट फ़ील्ड है, जिसका उपयोग यह इंगित करने के लिए किया जाता है कि वर्तमान घटना अपवाद है या इंटरप्ट।
- निचला बिट अपवाद कोड है, जिसका उपयोग विशिष्ट कारण को इंगित करने के लिए किया जाता है। इसका विवरण अध्याय 2 अपवाद में पाया जा सकता है।
मशीन मोड अपवाद मान रजिस्टर (mtval)
तालिका 8-11 mtval रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:0] | एमटीवीएल | एमआरडब्लू | अपवाद मान | 0 |
- इस रजिस्टर का उपयोग अपवाद उत्पन्न होने पर अपवाद उत्पन्न करने वाले मान को रखने के लिए किया जाता है। इसके संग्रहण के मान और समय जैसे विवरणों के लिए, कृपया अध्याय 2 अपवाद देखें।
PMP कॉन्फ़िगरेशन रजिस्टर (pmpcfg
- इस रजिस्टर का उपयोग मुख्य रूप से भौतिक मेमोरी सुरक्षा इकाई को कॉन्फ़िगर करने के लिए किया जाता है, और इस रजिस्टर के प्रत्येक 8 बिट का उपयोग किसी क्षेत्र की सुरक्षा को कॉन्फ़िगर करने के लिए किया जाता है। विस्तृत परिभाषा के लिए कृपया अध्याय 4 देखें।
PMP पता रजिस्टर (pmpaddr
- यह रजिस्टर मुख्य रूप से भौतिक मेमोरी सुरक्षा इकाई के पता कॉन्फ़िगरेशन के लिए उपयोग किया जाता है, जो 32-बिट भौतिक पते के ऊपरी 34 बिट्स को एनकोड करता है। विशिष्ट कॉन्फ़िगरेशन विधि के लिए कृपया अध्याय 4 देखें।
डिबग मोड प्रोग्राम पॉइंटर रजिस्टर (DPC)
- इस रजिस्टर का उपयोग माइक्रोप्रोसेसर के प्रवेश के बाद निष्पादित होने वाले अगले निर्देश का पता संग्रहीत करने के लिए किया जाता है
- डीबग मोड और उसका मान डीबग में प्रवेश करने के कारण के आधार पर अलग-अलग नियमों के साथ अपडेट किया जाता है। विस्तृत विवरण के लिए अनुभाग 6.1 देखें।
डीबग ट्रिगर चयन रजिस्टर (चयन)
- यह केवल उन माइक्रोप्रोसेसरों के लिए वैध है जो हार्डवेयर ब्रेकपॉइंट का समर्थन करते हैं और अधिकतम 4-चैनल ब्रेकपॉइंट का समर्थन करते हैं, और इसके निचले 2 बिट वैध हैं।
- प्रत्येक चैनल ब्रेकपॉइंट को कॉन्फ़िगर करते समय, आपको कॉन्फ़िगरेशन से पहले इस रजिस्टर के माध्यम से संबंधित चैनल का चयन करना होगा।
तालिका 8-12 रजिस्टर परिभाषा का चयन करें
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:2] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
[1:0] |
चुनना |
एमआरडब्लू |
ब्रेकपॉइंट चैनल चयन रजिस्टर कॉन्फ़िगर किया गया है, अर्थात, संबंधित चैनल का चयन करने के बाद, ब्रेकपॉइंट को कॉन्फ़िगर करने के लिए tdata1 और tdata2 रजिस्टरों को संचालित किया जा सकता है
जानकारी। |
X |
डीबग ट्रिगर डेटा रजिस्टर 1(tdata1)
यह केवल उन माइक्रोप्रोसेसरों के लिए मान्य है जो हार्डवेयर ब्रेकपॉइंट का समर्थन करते हैं। माइक्रोप्रोसेसर केवल निर्देश पता और डेटा पता ब्रेकपॉइंट का समर्थन करते हैं, जहां tdata1 रजिस्टर का बिट TYPE 2 का एक निश्चित मान है, और अन्य बिट्स डिबगिंग मानक में नियंत्रण की परिभाषा के अनुरूप हैं।
तालिका 8-13 tdata1 रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:28] | प्रकार | एमआरओ | ब्रेकपॉइंट प्रकार परिभाषा, नियंत्रण प्रकार. | 0x2 |
27 |
डीमोड |
एमआरओ |
0: फ्लिप-फ्लॉप के प्रासंगिक रजिस्टरों को मशीन मोड और डिबगिंग मोड दोनों में संशोधित किया जा सकता है;
1: केवल डिबग मोड फ्लिप-फ्लॉप के प्रासंगिक रजिस्टरों को संशोधित कर सकता है। |
1 |
[26:21] |
मास्कमैक्स |
एमआरओ |
जब MATCH=1, तो मिलान की अधिकतम घातीय घात सीमा की अनुमति होती है, अर्थात अधिकतम स्वीकार्य मिलान सीमा 231 बाइट्स होती है। |
0x1एफ |
[20:13] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
12 |
कार्रवाई |
एमआरडब्लू |
ब्रेकपॉइंट ट्रिगर करते समय प्रोसेसिंग मोड सेट करें:
0: ट्रिगर करते समय, ब्रेकपॉइंट दर्ज करें और इंटरप्ट को वापस कॉल करें; 1: ट्रिगर होने पर डिबगिंग मोड में प्रवेश करें। |
0 |
[11:8] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
7 |
मिलान |
एमआरडब्लू |
मिलान नीति कॉन्फ़िगरेशन:
0: मिलान करें जब ट्रिगर मान TDATA2 के बराबर हो; 1: ट्रिगर मान TDATA2 के उच्च m बिट से मेल खाता है, जहाँ m = 31–n, और n TDATA0 का पहला 2 कोट है (निम्न बिट से शुरू)। |
0 |
6 |
M |
एमआरडब्लू |
एम मोड में फ्लिप-फ्लॉप सक्षम करें:
0: M मोड में ट्रिगर को अक्षम करें; 1: M मोड में ट्रिगर को सक्षम करें। |
0 |
[5:4] | सुरक्षित | एमआरओ | सुरक्षित | 0 |
3 |
U |
एमआरडब्लू |
U मोड में ट्रिगर सक्षम करें:
0: यू मोड में ट्रिगर को अक्षम करें; 1: यू मोड में ट्रिगर को सक्षम करें। |
0 |
2 |
निष्पादित करना |
एमआरडब्लू |
निर्देश पढ़ने का पता ट्रिगर सक्षम: 0: अक्षम;
1: सक्षम करें. |
0 |
1 |
इकट्ठा करना |
एमआरडब्लू |
डेटा लेखन पता ट्रिगर सक्षम: 0: अक्षम;
1: सक्षम करें. |
0 |
0 |
भार |
एमआरडब्लू |
डेटा पढ़ने का पता ट्रिगर सक्षम: 0: अक्षम;
1: सक्षम करें. |
0 |
डीबग ट्रिगर डेटा रजिस्टर 2(tdata2)
यह केवल उन माइक्रोप्रोसेसरों के लिए मान्य है जो हार्डवेयर ब्रेकपॉइंट का समर्थन करते हैं और इसका उपयोग ट्रिगर के मिलान मान को बचाने के लिए किया जाता है।
तालिका 8-14 tdata2 रजिस्टर परिभाषा
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:0] | टीडीएटीए2 | एमआरडब्लू | मिलान मानों को सहेजने के लिए उपयोग किया जाता है. | X |
डीबग नियंत्रण और स्थिति रजिस्टर (dcsr)
इस रजिस्टर का उपयोग डिबगिंग मोड की चालू स्थिति को नियंत्रित करने और रिकॉर्ड करने के लिए किया जाता है। विवरण के लिए अनुभाग 7.1 देखें।
डिबग मोड प्रोग्राम पॉइंटर (DPC)
इस रजिस्टर का उपयोग माइक्रोप्रोसेसर द्वारा डिबगिंग मोड में प्रवेश करने के बाद निष्पादित किए जाने वाले अगले निर्देश के पते को संग्रहीत करने के लिए किया जाता है, डिबगिंग मोड में प्रवेश करने के कारणों के अनुसार इसका मान अलग-अलग होता है, और अपडेट करने के नियम भी अलग-अलग होते हैं। विस्तृत विवरण के लिए अनुभाग 7.1 देखें।
डिबग मोडtaging रजिस्टर (dscratch0-1)
रजिस्टरों के इस समूह का उपयोग डिबग मोड में डेटा के अस्थायी भंडारण के लिए किया जाता है।
तालिका 8-15 dscratch0-1 रजिस्टर परिभाषाएँ
अंश | नाम | पहुँच | विवरण | मूल्य रीसेट करें |
[31:0] | डीस्क्रैच | डीआरडब्लू | डिबग मोड डेटाtagआईएनजी मूल्य | 0 |
उपयोगकर्ता-परिभाषित सीएसआर रजिस्टर
उपयोगकर्ता मोड वैश्विक इंटरप्ट सक्षम रजिस्टर (gintenr)
- इस रजिस्टर का उपयोग ग्लोबल इंटरप्ट के सक्षम और मास्क को नियंत्रित करने के लिए किया जाता है। मशीन मोड में ग्लोबल इंटरप्ट के सक्षम और मास्क को स्टेटस में MIE और MPIE बिट्स द्वारा नियंत्रित किया जा सकता है, लेकिन इस रजिस्टर को यूजर मोड में संचालित नहीं किया जा सकता है।
- जबकि वैश्विक व्यवधान रजिस्टर gintenr स्थिति में MIE और MPIE की मैपिंग है सक्षम बनाता है।
- उपयोगकर्ता मोड में, आशय का उपयोग MIE और MPIE को सेट करने और साफ़ करने के लिए किया जा सकता है, जैसा कि विवरण के लिए अनुभाग 3.2 में वर्णित है।
टिप्पणी
- वैश्विक व्यवधानों में अनमास्क्ड व्यवधान, एनएमआई और अपवाद शामिल नहीं होते हैं।
इंटरप्ट सिस्टम नियंत्रण रजिस्टर (intsyscr)
इस रजिस्टर का उपयोग मुख्य रूप से इंटरप्ट नेस्टिंग गहराई, हार्डवेयर स्टैक प्रेसिंग और अन्य संबंधित कार्यों को कॉन्फ़िगर करने के लिए किया जाता है, जैसा कि विवरण के लिए अनुभाग 3.2 में वर्णित है।
माइक्रोप्रोसेसर कॉन्फ़िगरेशन रजिस्टर (corecfgr)
इस रजिस्टर का उपयोग यह नियंत्रित करने के लिए किया जाता है कि इंटरप्ट ओवरफ्लो के बाद NMI इंटरप्ट की अनुमति है या नहीं और फ़ेंस निर्देश निष्पादित होने पर इंटरप्ट अनुरोध साफ़ किया जाता है या नहीं। विशिष्ट परिभाषा के लिए कृपया अनुभाग 3.2 देखें।
इंटरप्ट नेस्टेड कंट्रोल रजिस्टर (inestcr)
इस रजिस्टर का उपयोग इंटरप्ट नेस्टिंग स्थिति को इंगित करने और यह बताने के लिए किया जाता है कि यह ओवरफ्लो है या नहीं, और अधिकतम नेस्टिंग स्तर को नियंत्रित करने के लिए किया जाता है। कृपया विशिष्ट परिभाषा के लिए अनुभाग 3.2 देखें।
दस्तावेज़ / संसाधन
![]() |
WH V3 माइक्रोप्रोसेसर [पीडीएफ] उपयोगकर्ता पुस्तिका V3 माइक्रोप्रोसेसर, V3, माइक्रोप्रोसेसर |