Mikroprocesori WH V3

Specifikimet
- Modeli i mikroprocesorit: QingKeV3
- Versioni: V1.2
- Karakteristikat e ISA:
- FPU e tubacionit
- Parashikimi i degës
- Ndërpreni mbështetjen
- Mbrojtja fizike e memories HPE (PMP)
- Mënyra e konsumit të ulët të energjisë
- Korrigjimi i grupit të instruksioneve të zgjeruara
Udhëzimet e përdorimit të produktit
Mbiview i mikroprocesorit QingKe V3
Mikroprocesorët e serisë QingKe V3 përfshijnë modelet V3A, V3B dhe V3C. Secili model ka veçori dhe dallime specifike bazuar në aplikimin e tij.
Seti i udhëzimeve
Kompleti i udhëzimeve RV32I përfshin 32 grupe regjistrash nga x0 në x31. Seria V3 nuk mbështet shtrirjen me pikë lundruese (F). Çdo regjistër është 32 bit në madhësi.
Set i Regjistrimit
Kompleti i regjistrave RV32I përbëhet nga regjistrat e mëposhtëm.
- x0: E koduar 0
- x1: Kthimi i adresës
- x2: Treguesi i stivës
- x3: Treguesi global
- x4: Treguesi i fillit
- x5-x7: Regjistrat e përkohshëm
- x8: Ruaj regjistrin/treguesin e kornizës
- x9: Ruaj parametrat e regjistrit/funksionit/vlerat e kthimit
- x10-x11: Parametrat e funksionit
- x12-x17: Ruaj regjistrat
- x18-x27: Regjistrat e përkohshëm
- x28-x31: Regjistrat e thirrësit/callee
Modaliteti i privilegjit
Arkitektura standarde RISC-V përfshin tre mënyra të privilegjuara: modaliteti i makinës, modaliteti mbikëqyrës dhe modaliteti i përdoruesit. Mikroprocesorët e serisë QingKe V3 mbështesin modalitetin e makinës dhe modalitetin mbikëqyrës.
Pyetjet e bëra më shpesh
Pyetje: Cilat janë modelet e ndryshme në mikroprocesorët e serisë QingKe V3?
A: Seria QingKe V3 përfshin modelet V3A, V3B dhe V3C, secili me veçori dhe dallime specifike të detajuara në manualin e përdoruesit.
Pyetje: Sa grupe regjistrash janë të disponueshëm në grupin e udhëzimeve RV32I?
A: Kompleti i udhëzimeve RV32I ofron 32 grupe regjistrash nga x0 në x31.
Pyetje: Cilat mënyra të privilegjuara mbështeten nga mikroprocesori QingKe V3?
A: Mikroprocesorët e serisë QingKe V3 mbështesin modalitetin Machine dhe Supervisor si pjesë e arkitekturës RISC-V.
Mbiview
Mikroprocesorët e serisë QingKe V3 janë mikroprocesorë MCU me qëllim të përgjithshëm 32-bit të vetë-zhvilluar, bazuar në arkitekturën standarde të grupit të instruksioneve RISC-V. Kjo seri përfshin V3A, V3B dhe V3C, nga të cilat V3A mbështet shtrirjen standarde të grupit të udhëzimeve RV32IMAC dhe V3B/C mbështet shtrirjen standarde të grupit të udhëzimeve RV32IMCB dhe shtesën e grupit të udhëzimeve të personalizuara XW. Të dyja mbështesin shumëzimin me një cikël dhe ndarjen e harduerit, përveç stivës së presionit të harduerit (HPE), ndërprerjes pa tabela (VTF), ndërfaqeve të korrigjuara me 1 dhe 2 tela, udhëzime "WFE" dhe veçori të tjera të veçanta. Përveç kësaj, ai gjithashtu mbështet Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), ndërfaqe të thjeshtuar të korrigjimit me 1-/2 tela dhe mbështetje për udhëzimet "WFE".
Veçoritë
| Veçoritë | Përshkrimi |
| ISA | RV32IM[A]C[B] |
| Tubacioni | 3 |
| FPU | Nuk mbështetet |
| Parashikimi i degës | Parashikimi statik i degëve |
| Ndërprisni | Mbështet një total prej 256 ndërprerjesh duke përfshirë përjashtime dhe mbështet VTF |
| HPE | Mbështet 2 nivele të HPE |
| Mbrojtja e memories fizike (PMP) | Mbështetur |
| Mënyra e konsumit të ulët të energjisë | Mbështetni modalitetet e gjumit dhe gjumit të thellë dhe mbështetni metodat e gjumit WFI dhe WFE |
| Set i zgjeruar i udhëzimeve | Mbështetur |
| Korrigjimi | SDI me 1/2 tela, korrigjimi standard RISC-V |
Mbiview
Mikroprocesorët e serisë QingKe V3 përfshijnë V3A, V3B dhe V3C, ka disa dallime midis serive sipas aplikacionit, dallimet specifike janë të detajuara në Tabelën 1-1.
Tabela 1-1 Mbiview i mikroprocesorit QingKe V3
| Veçori Model | ISA | Numri i niveleve të HPE | Ndërprerjet folezim numri i nivelet | VTF numri i kanaleve | Tubacioni | Vektor mënyra e tryezës | Udhëzim i zgjeruar (XW) | Numri i zonave të mbrojtjes së kujtesës |
| V3A | RV32IMAC | 2 | 2 | 4 | 3 | Udhëzim | × | × |
| V3B | RV32IMCB | 2 | 2 | 4 | 3 | Adresa/Udhëzim | √ | × |
| V3C | RV32IMCB | 2 | 2 | 4 | 3 | Adresa/Udhëzim | √ | 4 |
Shënim: Ndërrimi i detyrave të OS në përgjithësi përdor shtytje të stivës, e cila nuk kufizohet në numrin e niveleve
Seti i udhëzimeve
- Mikroprocesorët e serisë QingKe V3 ndjekin arkitekturën standarde të grupit të instruksioneve RISC-V (ISA). Dokumentacioni i detajuar i standardit mund të gjendet në "Manuali i grupit të instruksioneve RISC-V, Vëllimi I: ISA i nivelit të përdoruesit, versioni i dokumentit 2.2" në RISC-V International webfaqe. Kompleti i udhëzimeve RISC-V ka një arkitekturë të thjeshtë dhe mbështet një dizajn modular, duke lejuar kombinime fleksibël bazuar në nevoja të ndryshme, dhe seria V3 mbështet shtesat e mëposhtme të grupit të udhëzimeve.
- RV32: Arkitektura 32-bitësh, gjerësia e bitit të regjistrit për qëllime të përgjithshme 32 bit
- I: Mbështet funksionimin e formësimit, me 32 regjistra formësimi
- M: Mbështet udhëzimet e formësimit të shumëzimit dhe pjesëtimit
- A: Mbështet komandat atomike
- C: Mbështet udhëzimet e kompresimit 16-bit
- B: Mbështetje për udhëzimet e manipulimit të bitit
- XW: Udhëzime kompresimi 16-bitësh për operacionet e vetë-zgjatjes së bajtit dhe gjysmëfjalës
Shënim:
- Nëngrupi i udhëzimeve të mbështetura nga modele të ndryshme mund të jetë i ndryshëm, ju lutemi referojuni Tabelës 1-1 për detaje;
- Për të përmirësuar më tej densitetin e kodit, zgjeroni nëngrupin XW, shtoni udhëzimet e mëposhtme të kompresimit c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , përdorimi i të cilit duhet të bazohet në përpiluesin MRS ose në zinxhirin e veglave që ai ofron;
- V3B mbështet nxjerrjen e një udhëzimi fjalësh (32 bit) nga një udhëzim me dy fjalë (64 bit) dhe nxjerrjen e një udhëzimi fjalë (32 bit) nga një rezultat shumëzimi (64 bit). Metoda specifike e përdorimit mund t'i referohet funksionit të bibliotekës dhe të bashkëpunojë me përpiluesin MRS ose zinxhirin e veglave të ofruara prej tij;
- V3B/C mbështet udhëzimet e kopjimit të memories. Për përdorim specifik, ju lutemi referojuni funksionit të bibliotekës dhe bashkëpunoni me përpiluesin MRS ose zinxhirin e tij të veglave.
Set i Regjistrimit
RV32I ka 32 grupe regjistrash nga x0-x31. Seria V3 nuk e mbështet shtrirjen "F", dmth., nuk ka një grup regjistrash me pikë lundruese. Në RV32, çdo regjistër është 32 bit. Tabela 1-2 më poshtë rendit regjistrat e RV32I dhe përshkrimet e tyre.
Tabela 1-2 Regjistrat RISC-V
| Regjistrohu | Emri ABI | Përshkrimi | Magazinuesi |
| x0 | zero | E koduar 0 | – |
| x1 | ra | Kthimi i adresës | Telefonuesi |
| x2 | sp | Treguesi i stivës | Callee |
| x3 | GP | Treguesi global | – |
| x4 | tp | Treguesi i fillit | – |
| x5-7 | t0-2 | Regjistri i përkohshëm | Telefonuesi |
| x8 | s0/fp | Ruaj regjistrin/treguesin e kornizës | Callee |
| x9 | s1 | Ruaj regjistrin | Callee |
| x10-11 | a0-1 | Parametrat e funksionit/vlerat e kthimit | Telefonuesi |
| x12-17 | a2-7 | Parametrat e funksionit | Telefonuesi |
| x18-27 | a2-11 | Ruaj regjistrin | Callee |
| X28-31 | t3-6 | Regjistri i përkohshëm | Telefonuesi |
Atributi Caller në tabelën e mësipërme do të thotë që procedura e thirrur nuk e ruan vlerën e regjistrit dhe atributi Callee do të thotë që procedura e thirrur ruan regjistrin.
Modaliteti i privilegjit
- Arkitektura standarde RISC-V përfshin tre mënyra të privilegjuara: modaliteti i makinës, modaliteti mbikëqyrës dhe modaliteti i përdoruesit, siç tregohet në tabelën 1-3 më poshtë.
- Modaliteti i makinës është i detyrueshëm dhe mënyrat e tjera janë opsionale. Për detaje, mund t'i referoheni Manualit të grupit të udhëzimeve RISC-V Volume II: Arkitektura e privilegjuar", e cila mund të shkarkohet falas nga RISC-V International webfaqe.
Tabela 1-3 Modaliteti i privilegjit të arkitekturës RISC-V
| Kodi | Emri | Shkurtesat |
| 0b00 | Modaliteti i përdoruesit | U |
| 0b01 | Modeli i Mbikëqyrësit | S |
| 0b10 | Rezervuar | Rezervuar |
| 0b11 | Modaliteti i makinës | M |
- Mikroprocesorët e serisë QingKe V3 mbështesin dy nga këto mënyra të privilegjuara.
Modaliteti i makinës
- Modaliteti i makinës ka autoritetin më të lartë, programi në këtë modalitet mund të hyjë në të gjithë Regjistrin e Kontrollit dhe Statusit (CSR), por gjithashtu mund të hyjë në të gjitha fushat e adresave fizike.
- Parazgjedhja e ndezjes është në modalitetin e makinës, kur ekzekutimi i mret (instruksioni i kthimit të modalitetit të makinës) kthehet, sipas statusit të regjistrit CSR (Regjistri i statusit të modalitetit të makinës) në bitin MPP, nëse MPP = 0b00, atëherë dilni nga modaliteti i makinës në modalitetin Përdorues, MPP = 0b11, më pas vazhdoni të ruani modalitetin Makinë.
Modaliteti i përdoruesit
- Modaliteti i përdoruesit ka privilegjin më të ulët dhe vetëm regjistrat e kufizuar CSR mund të aksesohen në këtë modalitet. Kur ndodh një përjashtim ose ndërprerje, mikroprocesori kalon nga modaliteti i përdoruesit në modalitetin e makinës për të trajtuar përjashtimet dhe ndërprerjet.
Regjistri CSR
Një seri regjistrash CSR janë përcaktuar në arkitekturën RISC-V për të kontrolluar dhe regjistruar gjendjen e funksionimit të mikroprocesorit. Këto CSR mund të zgjerohen me 4096 regjistra duke përdorur një hapësirë të brendshme të dedikuar kodimi të adresave 12-bit. Dhe përdorni dy CSR të larta[11:10] për të përcaktuar lejen e leximit/shkrimit të këtij regjistri, 0b00, 0b01, 0b10 për lexim/shkrim të lejuar dhe 0b11 për vetëm lexim. Përdorni dy bit CSR[9:8] për të përcaktuar nivelin më të ulët të privilegjit që mund të aksesojë këtë regjistër dhe vlera korrespondon me modalitetin e privilegjit të përcaktuar në Tabelën 1-3. Regjistrat CSR të implementuara në mikroprocesorin QingKe V3 janë të detajuara në Kapitullin 8.
Përjashtim
Mekanizëm përjashtimi, i cili është një mekanizëm për të përgjuar dhe trajtuar "ngjarjet e pazakonta të operacionit". Mikroprocesorët e serisë QingKe V3 janë të pajisur me një sistem reagimi ndaj përjashtimeve që mund të trajtojë deri në 256 përjashtime, duke përfshirë ndërprerjet. Kur ndodh një përjashtim ose ndërprerje, mikroprocesori mund të përgjigjet shpejt dhe të trajtojë përjashtimet dhe ngjarjet e ndërprerjes.
Llojet e përjashtimit
Sjellja harduerike e mikroprocesorit është e njëjtë nëse ndodh një përjashtim ose një ndërprerje. Mikroprocesori pezullon programin aktual, kalon në mbajtësin e përjashtimit ose ndërprerjes dhe kthehet në programin e pezulluar më parë kur përpunimi të përfundojë. Në përgjithësi, ndërprerjet janë gjithashtu pjesë e përjashtimeve. Mund të jetë saktësisht nëse ndodhja aktuale është një ndërprerje ose një përjashtim viewed përmes përjashtimit të modalitetit të makinës shkaku i regjistrimit të shkakut. Mcause[31] është fusha e ndërprerjes, e cila përdoret për të treguar nëse shkaku i përjashtimit është një ndërprerje apo një përjashtim. mcause[31]=1 do të thotë ndërprerje, mcause[31]=0 do të thotë përjashtim. mcause[30:0] është kodi i përjashtimit, i cili përdoret për të treguar shkakun specifik të përjashtimit ose numrin e ndërprerjes, siç tregohet në tabelën e mëposhtme.
Tabela 2-1 Kodet e përjashtimit të mikroprocesorit V3
| Ndërprisni | Përjashtim kodet | Sinkron / Asinkron | Arsyeja e përjashtimit |
| 1 | 0-1 | – | Rezervuar |
| 1 | 2 | Asinkrone precize | NMI ndërpret |
| 1 | 3-11 | – | Rezervuar |
| 1 | 12 | Asinkrone precize | SysTick ndërpret |
| 1 | 13 | – | Rezervuar |
| 1 | 14 | Sinkron | Softueri ndërpritet |
| 1 | 15 | – | Rezervuar |
| 1 | 16-255 | Asinkrone precize | Ndërprerja e jashtme 16-255 |
| 0 | 0 | Sinkron | Udhëzimet adresojnë mospërputhjen |
| 0 | 1 | Sinkron | Gabim në hyrje të komandës së marrjes |
| 0 | 2 | Sinkron | Udhëzime të paligjshme |
| 0 | 3 | Sinkron | Pikat e ndërprerjes |
| 0 | 4 | Sinkron | Ngarkimi i udhëzimeve për qasje në adresën e gabuar |
| 0 | 5 | Asinkron jo preciz | Gabim në hyrje të komandës së ngarkimit |
| 0 | 6 | Sinkron | Dyqani/udhëzimet AMO të aksesit në adresën e gabuar |
| 0 | 7 | Asinkron jo preciz | Gabim aksesi në komandën e dyqanit/AMO |
| 0 | 8 | Sinkron | Thirrje mjedisore në modalitetin e përdoruesit |
| 0 | 11 | Sinkron | Thirrje mjedisore në modalitetin e makinës |
- Sinkron" në tabelë do të thotë që një instruksion mund të vendoset saktësisht aty ku është ekzekutuar, siç është një instruksion ndërprerjeje ose thirrjeje, dhe çdo ekzekutim i atij udhëzimi do të shkaktojë një përjashtim. "Asinkron" do të thotë që nuk është e mundur të përcaktohet me saktësi një instruksion dhe vlera e PC e udhëzimit mund të jetë e ndryshme sa herë që ndodh një përjashtim. "Precize asinkron" do të thotë që një përjashtim mund të vendoset saktësisht në kufirin e një instruksioni, dmth., gjendja pas ekzekutimit të një instruksioni, siç është një ndërprerje e jashtme. "Asinkron jo preciz" do të thotë që kufiri i një instruksioni nuk mund të vendoset saktësisht dhe ndoshta gjendja pas një instruksioni është ndërprerë në gjysmë të rrugës së ekzekutimit, si p.sh. një gabim i aksesit në kujtesë.
- Qasja në memorie kërkon kohë, dhe mikroprocesori zakonisht nuk pret fundin e aksesit kur hyn në kujtesë, por vazhdon të ekzekutojë instruksionin, kur përjashtimi i gabimit të aksesit ndodh përsëri, mikroprocesori ka ekzekutuar tashmë udhëzimet pasuese dhe nuk mund të jetë saktësisht të vendosura.
Hyrja e përjashtimit
Kur programi është në procesin e funksionimit normal, nëse për ndonjë arsye, shkakton një përjashtim ose ndërprerje. Sjellja harduerike e mikroprocesorit në këtë pikë mund të përmblidhet si më poshtë.
- Pezulloni rrjedhën aktuale të programit dhe kaloni në ekzekutimin e funksioneve të trajtimit të përjashtimit ose ndërprerjes. Adresa bazë e hyrjes dhe mënyra e adresimit të funksionit të përjashtimit ose të ndërprerjes përcaktohen nga regjistri i adresave bazë të hyrjes së përjashtimit mtvec. mtvec[31:2] përcakton adresën bazë të funksionit të përjashtimit ose ndërprerjes. mtvec[1:0] përcakton mënyrën e adresimit të funksionit të mbajtësit. kur mtvec[1:0]=0, të gjitha përjashtimet dhe ndërprerjet përdorin një hyrje të unifikuar, p.sh., kur ndodh një përjashtim ose ndërprerje, ai kthehet në mtvec[31:2] që përcakton adresën bazë për t'u ekzekutuar. Kur mtvec[1:0]=1, përjashtimet dhe ndërprerjet përdorin modalitetin e tabelës vektoriale, p.sh., çdo përjashtim dhe ndërprerje numërohet, dhe adresa zhvendoset sipas numrit të ndërprerjes*4, dhe kur ndodh një përjashtim ose ndërprerje, ajo zhvendoset. në adresën bazë të përcaktuar nga mtvec[31:2] + numri i ndërprerjes*4 Ekzekutimi. Tabela e vektorit të ndërprerjes përmban një instruksion për të kaluar në funksionin e mbajtësit të ndërprerjeve, ose mund të jenë udhëzime të tjera.
- Përditëso regjistrin CSR
- Kur futet një përjashtim ose ndërprerje, mikroprocesori përditëson automatikisht regjistrat përkatës CSR, duke përfshirë regjistrin e shkakut të përjashtimit të modalitetit të makinës mcause, regjistrin e treguesit të përjashtimit të modalitetit të makinës mepc, regjistrin metalik të vlerës së përjashtimit të modalitetit të makinës dhe statusin e regjistrit të statusit të gjendjes së modalitetit të makinës.
Përditëso mcause
Siç u përmend më parë, pas futjes së një përjashtimi ose ndërprerjeje, vlera e tij pasqyron llojin aktual të përjashtimit ose numrin e ndërprerjes, dhe softueri mund ta lexojë këtë vlerë të regjistrit për të kontrolluar shkakun e përjashtimit ose për të përcaktuar burimin e ndërprerjes, siç detajohet në Tabelën 2. -1.
Përditëso mepc
- Përkufizimi standard i adresës së kthimit të mikroprocesorit pas daljes nga një përjashtim ose ndërprerje ruhet në mepc.
- Pra, kur ndodh një përjashtim ose ndërprerje, pajisja përditëson automatikisht vlerën mepc në vlerën aktuale të udhëzimit të PC-së kur haset përjashtimi, ose vlerën tjetër të instruksionit të PC-së të ekzekutuar paraprakisht përpara ndërprerjes.
- Pasi të përpunohet përjashtimi ose ndërprerja, mikroprocesori përdor vlerën e tij të ruajtur si adresën e kthimit për t'u kthyer në vendndodhjen e ndërprerjes për të vazhduar ekzekutimin.
- Megjithatë, vlen të theksohet se.
- MEPC është një regjistër i lexueshëm dhe i shkruhet, dhe softueri mund të modifikojë gjithashtu vlerën për të modifikuar vendndodhjen e treguesit të PC-së që funksionon pas kthimit.
- Kur ndodh një ndërprerje, dmth, kur shkaku i përjashtimit regjistron mcause[31]=1, vlera e hartave përditësohet në vlerën e PC të instruksionit tjetër të paekzekutuar në kohën e ndërprerjes.
- Kur ndodh një përjashtim, vlera e hartave përditësohet në vlerën e PC udhëzuese të përjashtimit aktual kur përjashtimi shkakton regjistrin mcause[31]=0. Pra, në këtë kohë kur kthehet përjashtimi, nëse kthehemi drejtpërdrejt duke përdorur vlerën e mepc, ne vazhdojmë të ekzekutojmë instruksionin që gjeneroi përjashtimin më parë, dhe në këtë kohë, ne do të vazhdojmë të fusim përjashtimin. Zakonisht, pasi të trajtojmë përjashtimin, ne mund të modifikojmë vlerën e mepc në vlerën e instruksionit tjetër të paekzekutuar dhe më pas të kthehemi. Për shembullample, nëse shkaktojmë një përjashtim për shkak të thirrjes/ndërprerjes, pas trajtimit të përjashtimit, meqenëse rikujtimi/ndërprerja (c.ebreak është 2 byte) është një instruksion 4 bajt, na duhet vetëm softueri për të modifikuar vlerën e mepc në mepc +4 (c.ebreak është mepc+2) dhe më pas kthehu.
Përditëso mtval
Kur futen përjashtime dhe ndërprerje, pajisja do të përditësojë automatikisht vlerën e mtval, e cila është vlera që shkaktoi përjashtimin. Vlera është zakonisht.
- Nëse një përjashtim shkaktohet nga një akses në memorie, hardueri do të ruajë adresën e aksesit të kujtesës në kohën e përjashtimit në mtval.
- Nëse përjashtimi shkaktohet nga një udhëzim i paligjshëm, pajisja do të ruajë kodin e udhëzimit të udhëzimit në mtval.
- Nëse përjashtimi shkaktohet nga një pikë ndërprerjeje e harduerit, pajisja do të ruajë vlerën e PC në pikën e ndërprerjes në mtval.
- Për përjashtime të tjera, hardueri vendos vlerën e mtval në 0, siç është break, përjashtimi i shkaktuar nga instruksioni i thirrjes.
- Kur futni ndërprerjen, hardueri vendos vlerën e mtval në 0.
Përditëso mstatus
Me futjen e përjashtimeve dhe ndërprerjeve, hardueri përditëson disa pjesë në mstatus.
- MPIE përditësohet në vlerën MIE përpara se të futet përjashtimi ose ndërprerja, dhe MPIE përdoret për të rivendosur MIE pasi përjashtimi dhe ndërprerja të kenë përfunduar.
- MPP përditësohet në modalitetin e privilegjuar përpara se të futni përjashtime dhe ndërprerje, dhe pasi përjashtimet dhe ndërprerjet të kenë përfunduar, MPP përdoret për të rivendosur modalitetin e mëparshëm të privilegjuar.
- Mikroprocesori QingKe V3 mbështet folenë e ndërprerjeve në modalitetin Machine dhe MIE nuk do të pastrohet pas futjes së përjashtimeve dhe ndërprerjeve.
Përditëso modalitetin e privilegjit të mikroprocesorit
- Kur ndodhin përjashtime dhe ndërprerje, modaliteti i privilegjuar i mikroprocesorit përditësohet në modalitetin e makinës.
Funksionet e trajtimit të përjashtimit
- Me futjen e një përjashtimi ose ndërprerjeje, mikroprocesori ekzekuton programin nga adresa dhe mënyra e përcaktuar nga regjistri mtvec. Kur përdor hyrjen e unifikuar, mikroprocesori merr një instruksion kërcimi nga adresa bazë e përcaktuar nga mtvec[31:2] bazuar në vlerën e mtvec[1], ose merr adresën e hyrjes së funksionit të trajtimit të përjashtimit dhe ndërprerjes dhe në vend të kësaj shkon për ta ekzekutuar. . Në këtë kohë, funksioni i trajtimit të përjashtimit dhe ndërprerjes mund të përcaktojë nëse shkaku është një përjashtim apo një ndërprerje bazuar në vlerën e mcause[31], dhe lloji dhe shkaku i përjashtimit ose ndërprerja përkatëse mund të gjykohet nga kodi i përjashtimit. dhe trajtohen në përputhje me rrethanat.
- Kur përdorni adresën bazë + numrin e ndërprerjes *4 për kompensim, pajisja kalon automatikisht në tabelën vektoriale për të marrë adresën e hyrjes së funksionit të përjashtimit ose ndërprerjes bazuar në numrin e ndërprerjes dhe kërcen për ta ekzekutuar atë.
Përjashtim Dalje
- Pasi të përfundojë trajtimi i përjashtimit ose ndërprerjes, është e nevojshme të dilni nga programi i shërbimit. Pas futjes së përjashtimeve dhe ndërprerjeve, mikroprocesori hyn në modalitetin e makinës nga modaliteti i përdoruesit, dhe përpunimi i përjashtimeve dhe ndërprerjeve përfundon gjithashtu në modalitetin Machine. Kur është e nevojshme të dilni nga përjashtimet dhe ndërprerjet, është e nevojshme të përdorni udhëzimin mret për t'u kthyer. Në këtë kohë, pajisja e mikroprocesorit do të kryejë automatikisht veprimet e mëposhtme.
- Treguesi i PC-së rikthehet në vlerën e regjistrit CSR mepc, dmth. ekzekutimi fillon në adresën e udhëzimit të ruajtur nga mepc. Është e nevojshme t'i kushtohet vëmendje funksionimit të kompensimit të mepc pasi të përfundojë trajtimi i përjashtimit.
- Përditësoni statusin e regjistrit CSR, MIE rikthehet në MPIE dhe MPP përdoret për të rivendosur modalitetin e privilegjuar të mikroprocesorit të mëparshëm.
- I gjithë procesi i përgjigjes së përjashtimit mund të përshkruhet nga Figura 2-1 e mëposhtme.

PFIC dhe Kontrolli i Ndërprerjeve
- Mikroprocesori QingKe V3 është projektuar me një kontrollues të programueshëm të ndërprerjes së shpejtë (PFIC) që mund të menaxhojë deri në 256 ndërprerje duke përfshirë përjashtime.
- 16 prej tyre fiksohen si ndërprerje të brendshme të mikroprocesorit, kurse të tjerat janë ndërprerje të jashtme, pra numri maksimal i ndërprerjeve të jashtme mund të zgjatet në 240. Karakteristikat kryesore të tij janë si më poshtë.
- 240 ndërprerje të jashtme, secila kërkesë për ndërprerje ka pjesë të pavarura të kontrollit të këmbëzës dhe maskës, me pjesë të dedikuara statusi
- Prioriteti i programueshëm i ndërprerjes mbështet 2 nivele të foleve
- Ndërprerje speciale e shpejtë brenda/jashtë mekanizmit, grumbullimi automatik i harduerit dhe rikuperimi, thellësia maksimale HPE prej 2 nivelesh
- Mekanizmi i përgjigjes së ndërprerjes pa tabela vektoriale (VTF), akses i drejtpërdrejtë i programueshëm me 2 kanale në adresat e vektorit të ndërprerjes
- Shënim: Thellësia maksimale e foleve dhe thellësia HPE e mbështetur nga kontrollorët e ndërprerjeve ndryshojnë për modele të ndryshme mikroprocesorësh, të cilat mund të gjenden në Tabelën 1-1.
- Tabela vektoriale e ndërprerjeve dhe përjashtimeve është paraqitur në tabelën 3-1 më poshtë.
Tabela 3-1 Tabela e vektorit të përjashtimit dhe ndërprerjes
| Numri | Prioriteti | Lloji | Emri | Përshkrimi |
| 0 | – | – | – | – |
| 1 | – | – | – | – |
| 2 | -5 | E rregulluar | NMI | Ndërprerje jo e maskueshme |
| 3 | -4 | E rregulluar | EXC | Përjashtim ndërprerje |
| 4 | – | – | – | – |
| 5 | -3 | E rregulluar | ECALL-M | Ndërprerja e kthimit të telefonatës në modalitetin e makinës |
| 6-7 | – | – | – | – |
| 8 | -2 | E rregulluar | ECALL-U | Ndërprerja e kthimit të telefonatës së modalitetit të përdoruesit |
| 9 | -1 | E rregulluar | PIKA E NDRYSHIMIT | Ndërprerja e kthimit të telefonatës në pikën e ndërprerjes |
| 10-11 | – | – | – | – |
| 12 | 0 | I programueshëm | SysTick | Ndërprerja e kohëmatësit të sistemit |
| 13 | – | – | – | – |
| 14 | 1 | I programueshëm | SWI | Ndërprerja e softuerit |
| 15 | – | – | – | – |
| 16-255 | 2-241 | I programueshëm | Ndërprerja e jashtme | Ndërprerja e jashtme 16-255 |
Shënim: ECALL-M, ECALL-U dhe BREAKPOINT janë të gjitha lloje të ndryshme përjashtimesh EXC, të cilat janë të pavarura në V3B/C për lehtësinë e përdorimit dhe 3 adresat e mësipërme të hyrjes ndahen me EXC në V3A.
Seti i Regjistrit PFIC
Tabela 3-2 Regjistrat e PFIC
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
| PFIC_ISRx | 0xE000E000
-0xE000E01C |
RO | Regjistri i statusit të aktivizimit të ndërprerjes x | 0x00000000 |
| PFIC_IPRx | 0xE000E020
-0xE000E03C |
RO | Ndërprerja e regjistrit të statusit në pritje x | 0x00000000 |
| PFIC_ITHRESDR | 0xE000E040 | RW | Regjistri i konfigurimit të pragut të përparësisë së ndërprerjes | 0x00000000 |
| PFIC_VTFBADDRR | 0xE000E044 | RW | Regjistri i adresave bazë VTF
Shënim: E vlefshme vetëm për V3A |
0x00000000 |
| PFIC_CFGR | 0xE000E048 | RW | Ndërprerja e regjistrit të konfigurimit
Shënim: E vlefshme vetëm për V3A |
0x00000000 |
| PFIC_GISR | 0xE000E04C | RO | Ndërprisni regjistrin e statusit global | 0x00000002 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
Regjistri i konfigurimit të ID-së së ndërprerjes VTF
Shënim: E vlefshme vetëm për V3B/C. |
0x00000000 |
| PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | Regjistri i adresave të kompensimit VTF x | 0xXXXXXXXXX |
| PFIC_IENRx | 0xE000E100
-0xE000E11C |
WO | Regjistri i cilësimit të aktivizimit të ndërprerjes x | 0x00000000 |
| PFIC_IRERx | 0xE000E180
-0xE000E19C |
WO | Ndërprerja mundëson pastrimin e regjistrit x | 0x00000000 |
| PFIC_IPSRx | 0xE000E200
-0xE000E21C |
WO | Regjistri i cilësimit të ndërprerjes në pritje x | 0x00000000 |
| PFIC_IPRRx | 0xE000E280
-0xE000E29C |
WO | Ndërprerja në pritje të regjistrit të qartë x | 0x00000000 |
| PFIC_IACTRx | 0xE000E300
-0xE000E31C |
RO | Regjistri i statusit të aktivizimit të ndërprerjes x | 0x00000000 |
| PFIC_IPRIORx | 0xE000E400
-0xE000E43C |
RW | Ndërprerja e regjistrit të konfigurimit të prioritetit | 0x00000000 |
| PFIC_SCTLR | 0xE000ED10 | RW | Regjistri i kontrollit të sistemit | 0x00000000 |
Shënim:
- NMI, EXC, ECALL-M, ECALL-U dhe BREAKPOINT janë gjithmonë të aktivizuara si parazgjedhje.
- ECALL-M, ECALL-U dhe BREAKPOINT janë një rast i EXC.
- Mbështetja e NMI, EXC, ECALL-M, ECALL-U dhe BREAKPOINT për ndërprerjen në pritje të funksionimit të pastrimit dhe cilësimit, por jo ndërprerja mundëson funksionimin e pastrimit dhe cilësimit.
Çdo regjistër përshkruhet si më poshtë:
Ndërprerja e aktivizimit të statusit dhe ndërprerja e regjistrave të statusit në pritje (PFIC_ISR<0-7>/PFIC_IPR<0-7>)
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
| PFIC_ISR0 | 0xE000E000 | RO | Ndërprerja 0-31 mundëson regjistrin e statusit, gjithsej 32 bit statusi [n], duke treguar #n ndërprerja mundëson statusin
Shënim: NMI dhe EXC janë të aktivizuara sipas parazgjedhjes |
Për V3A: 0x0000000C
Për V3B/C: 0x0000032C |
| PFIC_ISR1 | 0xE000E004 | RO | Ndërprerja 32-63 mundëson regjistrin e statusit, gjithsej 32 bit statusi | 0x00000000 |
| … | … | … | … | … |
| PFIC_ISR7 | 0xE000E01C | RO | Ndërprerja 224-255 mundëson regjistrin e statusit, gjithsej 32 bit statusi | 0x00000000 |
| PFIC_IPR0 | 0xE000E020 | RO | Ndërprerja 0-31 statusi në pritje | 0x00000000 |
| regjistër, gjithsej 32 bit statusi [n], që tregojnë statusin në pritje të ndërprerjes #n | ||||
| PFIC_IPR1 | 0xE000E024 | RO | Ndërprerje 32-63 regjistra statusi në pritje, 32 bit statusi gjithsej | 0x00000000 |
| … | … | … | … | … |
| PFIC_IPR7 | 0xE000E03C | RO | Ndërprerje 244-255 regjistër statusi në pritje, 32 bit statusi gjithsej | 0x00000000 |
Dy grupe regjistrash përdoren për të mundësuar dhe çaktivizuar ndërprerjet përkatëse.
Cilësimet e aktivizimit të ndërprerjes dhe pastroni regjistrat (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
| PFIC_IENR0 | 0xE000E100 | WO | Ndërprerja 0-31 mundëson regjistrin e cilësimit, gjithsej 32 bit cilësues [n], për cilësimin e aktivizimit të ndërprerjes #n
Shënim: NMI dhe EXC janë aktivizuar sipas parazgjedhjes |
0x00000000 |
| PFIC_IENR1 | 0xE000E104 | WO | Ndërprerja 32-63 për të aktivizuar regjistrin e cilësimeve, gjithsej 32 bit vendosjeje | 0x00000000 |
| … | … | … | … | … |
| PFIC_IENR7 | 0xE000E11C | WO | Ndërprerja 224-255 aktivizoni cilësimin
regjistër, gjithsej 32 bit vendosjeje |
0x00000000 |
| – | – | – | – | – |
| PFIC_IRER0 | 0xE000E180 | WO | Ndërprerjet 0-31 mundësojnë regjistrin e qartë, gjithsej 32 bit të pastra [n], për ndërprerjen #n aktivizoni pastrimin Shënim: NMI dhe EXC nuk mund të jenë operuar |
0x00000000 |
| PFIC_IRER1 | 0xE000E184 | WO | Ndërprerja 32-63 mundëson një regjistër të qartë, gjithsej 32 bit të pastër | 0x00000000 |
| … | … | … | … | … |
| PFIC_IRER7 | 0xE000E19C | WO | Ndërprerja 244-255 mundëson një regjistër të qartë, gjithsej 32 bit të pastër | 0x00000000 |
Dy grupe regjistrash përdoren për të mundësuar dhe çaktivizuar ndërprerjet përkatëse.
Ndërprerja e cilësimeve në pritje dhe fshirja e regjistrave (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
|
PFIC_IPSR0 |
0xE000E200 |
WO |
Ndërprerja 0-31 në pritje të regjistrit të cilësimeve, 32
vendosja e biteve [n], për ndërprerjen #n cilësim në pritje |
0x00000000 |
| PFIC_IPSR1 | 0xE000E204 | WO | Ndërprerja 32-63 në pritje të regjistrit të konfigurimit,
gjithsej 32 bit konfigurimi |
0x00000000 |
| … | … | … | … | … |
| PFIC_IPSR7 | 0xE000E21C | WO | Ndërprerja 224-255 në pritje të cilësimit
regjistër, 32 bit vendosjeje në total |
0x00000000 |
| – | – | – | – | – |
|
PFIC_IPRR0 |
0xE000E280 |
WO |
Ndërprerja 0-31 në pritje të regjistrit të pastër, gjithsej 32 bit të pastër [n], për ndërprerjen #n
në pritje të qartë |
0x00000000 |
| PFIC_IPRR1 | 0xE000E284 | WO | Ndërprerja 32-63 në pritje të regjistrit të qartë,
gjithsej 32 bit të qartë |
0x00000000 |
| … | … | … | … | … |
| PFIC_IPRR7 | 0xE000E29C | WO | Ndërprerja 244-255 në pritje të regjistrit të qartë,
gjithsej 32 bit të qartë |
0x00000000 |
Kur mikroprocesori mundëson një ndërprerje, ai mund të vendoset drejtpërdrejt përmes regjistrit të ndërprerjes në pritje për të shkaktuar ndërprerjen. Përdorni regjistrin e qartë të ndërprerjes në pritje për të pastruar këmbëzën në pritje.
Regjistri i statusit të aktivizimit të ndërprerjes (PFIC_IACTR<0-7>)
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
| PFIC_IACTR0 | 0xE000E300 | RO | Ndërprerja 0-31 aktivizon regjistrin e statusit me 32 bit statusi [n], që tregon se ndërprerja #n është duke u ekzekutuar | 0x00000000 |
| PFIC_IACTR1 | 0xE000E304 | RO | Ndërpreni regjistrat e statusit të aktivizimit 32-63, 32 bit statusi në
total |
0x00000000 |
| … | … | … | … | … |
| PFIC_IACTR7 | 0xE000E31C | RO | Ndërprerja e regjistrave të statusit të aktivizimit 224-255, gjithsej 32 bit statusi | 0x00000000 |
Çdo ndërprerje ka një bit të statusit aktiv që konfigurohet kur futet ndërprerja dhe pastrohet nga hardueri kur tregu kthehet.
Regjistrat e përparësisë së ndërprerjes dhe pragut të përparësisë (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
| PFIC_IPRIOR0 | 0xE000E400 | RW | Ndërprerja e konfigurimit të përparësisë 0. V3A: [7:4]: Bit kontrolli prioritar Nëse konfigurimi nuk është i ndërthurur, nuk ka bit paraprak Nëse foleja është konfiguruar, biti 7 është biti i paravendosur. [3:0]: Rezervuar, fiksuar në 0 V3B: [7:6]: Bitët e kontrollit të përparësisë Nëse konfigurimi nuk është i ndërthurur, asnjë bit parandalues i konfiguruar nuk është i ndërthurur, të gjithë bitët paraprakohen, por lejohen të ndodhin deri në dy nivele ndërprerjesh [5:0]: Rezervuar, fiksuar në 0 V3C: [7:5]: Bitë të kontrollit të përparësisë Nëse konfigurimi nuk është i ndërthurur, nuk ka bit parandalues Nëse konfigurohen të ndërlidhura, të gjitha bitet paraprakohen, por lejohen të ndodhin deri në dy nivele ndërprerjesh [4:0]: Të rezervuara, të fiksuara në 0 Shënim: Sa më e vogël të jetë vlera e përparësisë, aq më i lartë është prioriteti. Nëse e njëjta ndërprerje e përparësisë së parandalimit varet në të njëjtën kohë, ndërprerja me përparësinë më të lartë do të ekzekutohet së pari. |
0x00 |
| PFIC_IPRIOR1 | 0xE000E401 | RW | Cilësimi i prioritetit të ndërprerjes 1, funksion i njëjtë si PFIC_IPRIOR0 | 0x00 |
| PFIC_IPRIOR2 | 0xE000E402 | RW | Cilësimi i prioritetit të ndërprerjes 2, funksion i njëjtë si PFIC_IPRIOR0 | |
| … | … | … | … | … |
| PFIC_IPRIOR254 | 0xE000E4FE | RW | Cilësimi i prioritetit të ndërprerjes 254, funksion i njëjtë si PFIC_IPRIOR0 | 0x00 |
| PFIC_IPRIOR255 | 0xE000E4FF | RW | Cilësimi i prioritetit të ndërprerjes 255, funksion i njëjtë si PFIC_IPRIOR0 | 0x00 |
| – | – | – | – | – |
| PFIC_ITHRESDR | 0xE000E040 | RW | Vendosja e pragut të përparësisë së ndërprerjes
V3A: [31:8]: Rezervuar, fiksuar në 0 [7:4]: Pragu i përparësisë [3:0]: Rezervuar, fiksuar në 0V3B: [31:8]: Rezervuar, fiksuar në 0 [7:5]: Pragu i përparësisë [4:0]: Rezervuar, fiksuar në 0V3C: [31:8]: Rezervuar, fiksuar në 0 [7:5]: Pragu i përparësisë [4:0]: Rezervuar, fiksuar në 0Shënim: Për ndërprerjet me vlerë përparësie ≥ pragu, funksioni i shërbimit të ndërprerjes nuk ekzekutohet kur ndodh një pezullim, dhe kur ky regjistër është 0, do të thotë që regjistri i pragut është i pavlefshëm. |
0x00 |
Regjistri i konfigurimit të ndërprerjeve (PFIC_CFGR)
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
| PFIC_CFGR | 0xE000E048 | RW | Ndërprerja e regjistrit të konfigurimit | 0x00000000 |
Ky regjistër është i vlefshëm vetëm për V3A, bitet e tij përcaktohen si:
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:16] | KYKODI | WO | Që korrespondojnë me bit të ndryshëm të kontrollit të objektivit, të dhënat përkatëse të identifikimit të aksesit të sigurisë duhet të shkruhen njëkohësisht në mënyrë që të modifikohen dhe të dhënat e leximit fiksohen në 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF. | 0 |
| [15:8] | Rezervuar | RO | Rezervuar | 0 |
| 7 | SYSRESET | WO | Rivendosja e sistemit (shkrimi i njëkohshëm në KEY3). Pastro automatikisht 0.
Shkrimi 1 është i vlefshëm, shkrimi 0 është i pavlefshëm. Shënim: Funksioni i njëjtë si biti i regjistrit PFIC_SCTLR SYSRESET. |
0 |
| 6 | PFICRESET | WO | Rivendosja e modulit PFIC. Pastro automatikisht 0.
Shkrimi 1 është i vlefshëm, shkrimi 0 është i pavlefshëm. |
0 |
| 5 | EXPRESS | WO | Ndërprerja e përjashtimit në pritje të pastër (shkrim i njëkohshëm në KEY2)
Shkrimi 1 është i vlefshëm, shkrimi 0 është i pavlefshëm. |
0 |
| 4 | EKSET | WO | Cilësimi në pritje të ndërprerjes së përjashtimit (shkrim i njëkohshëm në KEY2)
Shkrimi 1 është i vlefshëm, shkrimi 0 është i pavlefshëm. |
0 |
| 3 | NMIRESET | WO | Ndërprerja NMI në pritje të fshirjes (shkrim i njëkohshëm në KEY2)
Shkrimi 1 është i vlefshëm, shkrimi 0 është i pavlefshëm. |
0 |
| 2 | NMISET | WO | Cilësimi në pritje të ndërprerjes NMI (Shkrim i njëkohshëm në KEY2)
Shkrimi 1 është i vlefshëm, shkrimi 0 është i pavlefshëm. |
0 |
| 1 | NESTCTRL | RW | Ndërprerja e foleve mundëson kontrollin.
1: fikur; 0: aktiv (shkrim sinkron në KEY1) |
0 |
| 0 | HWSTKCTRL | RW | Kontrolli i aktivizimit të HPE
1: fikur; 0: aktiv (shkrim sinkron në KEY1) |
0 |
Ndërprerja e regjistrit të statusit global (PFIC_GISR)
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
| PFIC_GISR | 0xE000E04C | RO | Ndërprisni regjistrin e statusit global | 0x00000000 |
Njerëzit e saj përkufizohen si
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:14] | Rezervuar | RO | Rezervuar | 0 |
|
13 |
LOCKSTA |
RO |
Nëse procesori është aktualisht në një gjendje të kyçur:
1: Gjendja e kyçur; 0: Gjendje jo e kyçur. Shënim: Ky bit është i vlefshëm vetëm për V3B/C. |
0 |
|
12 |
DBGMODE |
RO |
Nëse procesori është aktualisht në gjendje korrigjimi: 1: Gjendja e korrigjimit;
0: Gjendja pa korrigjim. Shënim: Ky bit është i vlefshëm vetëm për V3B/C. |
0 |
|
11 |
GLOBLIE |
RO |
Aktivizo ndërprerjen globale:
1: Aktivizo ndërprerjen; 0: Çaktivizo ndërprerjen. Shënim: Ky bit është i vlefshëm vetëm për V3B/C. |
|
| 10 | Rezervuar | RO | Rezervuar | 0 |
| 9 | GPENDSTA | RO | Nëse një ndërprerje është aktualisht në pritje.
1: Po; 0: Jo. |
0 |
| 8 | GACTSTA | RO | Nëse një ndërprerje është duke u ekzekutuar aktualisht.
1: Po; 0: Jo. |
0 |
|
[7:0] |
NESTSTA |
RO |
Statusi aktual i folezimit të ndërprerjeve. 0x03: në nivelin 2 ndërprerje.
0x01: në nivelin 1 ndërprerje. 0x00: nuk ndodhin ndërprerje. Të tjera: Situatë e pamundur. |
0 |
Regjistrat e adresës bazë të ID-së VTF dhe të adresave të kompensuara (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
|
PFIC_VTFBADDRR |
0xE000E044 |
RW |
[31:28]: 4 bit i lartë i adresës së synuar të VTF [27:0]: Rezervuar
Ky regjistër është i vlefshëm vetëm për V3A. |
0x00000000 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
[31:24]: Numri i VTF 3 [23:16]: Numri i VTF 2 [15:8]: Numri i VTF 1 [7:0]: Numri i VTF 0
Ky regjistër është i vlefshëm vetëm për V3B/C. |
0x00000000 |
| – | – | – | – | – |
|
PFIC_VTFADDRR0 |
0xE000E060 | RW | V3A: [31:24]: Numri i ndërprerjes VTF 0 [23:0]: 24 bitet e ulëta të adresës së synuar VTF, nga të cilat 20 bitet e ulëta janë konfiguruar të jenë të vlefshme dhe [23:20] është fiksuar në 0 .
V3B/C: [31:1]: Adresa VTF 0, 2-bajtë e rreshtuar [0]:1: Aktivizo kanalin VTF 0 0: Çaktivizo |
Për V3A: 0x00000000 Për V3B/C: 0xXXXXXXXXX |
|
PFIC_VTFADDRR1 |
0xE000E064 |
RW |
V3A: [31:24]: Numri i ndërprerjes VTF 1 [23:0]: 24 bitet e ulëta të adresës së synuar të VTF, nga të cilat 20 bitet e ulëta janë konfiguruar të jenë të vlefshme dhe [23:20] është fiksuar në 0.
V3B/C: [31:1]: Adresa VTF 1, 2-bajtë e rreshtuar [0]:1: Aktivizo kanalin VTF 1 0: Çaktivizo |
Për V3A: 0x00000000 Për V3B/C: 0xXXXXXXXXX |
|
PFIC_VTFADDRR2 |
0xE000E068 |
RW |
V3A: [31:24]: Numri i ndërprerjes VTF 2 [23:0]: 24 bitet e ulëta të adresës së synuar VTF, nga të cilat 20 bitet e ulëta janë konfiguruar të jenë të vlefshme dhe [23:20] është fiksuar në 0 .
V3B/C: [31:1]: Adresa VTF 2, 2-bajtë e rreshtuar [0]:1: Aktivizo kanalin VTF 2 0: Çaktivizo |
Për V3A: 0x00000000 Për V3B/C: 0xXXXXXXXXX |
| PFIC_VTFADDRR3 | 0xE000E06C | RW | V3A: | Për V3A: |
| [31:24]: Numri i ndërprerjes VTF 3 [23:0]: 24 bitet e ulëta të adresës së synuar VTF, nga të cilat 20 bitet e ulëta janë konfiguruar të jenë të vlefshme dhe [23:20] është fiksuar në 0.
V3B/C: [31:1]: Adresa VTF 3, 2-bajtë e rreshtuar [0]:1: Aktivizo kanalin VTF 3 0: Çaktivizo |
0x00000000
Për V3B/C: 0xXXXXXXXXX |
Regjistri i kontrollit të sistemit (PFIC_SCTLR)
| Emri | Qasja në adresë | Qasja | Përshkrimi | Rivendos vlerën |
| PFIC_SCTLR | 0xE000ED10 | RW | Regjistri i kontrollit të sistemit | 0x00000000 |
Secila prej tyre përcaktohet si më poshtë.
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| 31 | SYSRESET | WO | Rivendosja e sistemit, fshirja automatike 0. Shkrimi 1 është i vlefshëm dhe shkrimi 0 është i pavlefshëm.
Shënim: Ky bit është i vlefshëm vetëm për V3B/C |
0 |
| [30:6] | Rezervuar | RO | Rezervuar | 0 |
| 5 | SETEVENT | WO | Vendosni ngjarjen për të zgjuar çështjen WFE. | 0 |
|
4 |
SEVONPEND | RW | Kur një ngjarje ndodh ose ndërpret një gjendje në pritje, sistemi mund të zgjohet pas instruksionit WFE, ose nëse instruksioni WFE nuk ekzekutohet, sistemi do të zgjohet menjëherë pas ekzekutimit të radhës të instruksionit.
1: Ngjarjet e aktivizuara dhe të gjitha ndërprerjet (Përfshirë ndërprerjet e paaktivizuara) mund ta zgjojnë sistemin. 0: Vetëm ngjarje të aktivizuara dhe të aktivizuara ndërprerjet mund të zgjojnë sistemin. |
0 |
| 3 | WFITOWFE | RW | Ekzekutoni komandën WFI sikur të ishte një WFE.
1: Trajtojeni udhëzimin pasues WFI si një udhëzim WFE. 0: Nuk ka efekt. |
0 |
| 2 | GJUMË | RW | Modaliteti i fuqisë së ulët të sistemit të kontrollit. | 0 |
| 1: gjumë i thellë 0: gjumë | ||||
| 1 | SLEEPONEXI T | RW | Statusi i sistemit pas kontrollit largohet nga programi i shërbimit të ndërprerjes.
1: Sistemi hyn në modalitetin e fuqisë së ulët. 0: Sistemi hyn në programin kryesor. |
0 |
| 0 | Rezervuar | RO | Rezervuar | 0 |
Regjistrat CSR të lidhura me ndërprerjet
Gjithashtu, regjistrat e mëposhtëm CSR kanë gjithashtu një ndikim të rëndësishëm në përpunimin e ndërprerjeve. Regjistri i kontrollit të sistemit të ndërprerjes (intsyscr)
Ky regjistër nuk është i vlefshëm vetëm për V3A:
| Emri | CSR Adresa | Qasja | Përshkrimi | Rivendos vlerën |
| intsyscr | 0x804 | URW | Ndërprerja e regjistrit të kontrollit të sistemit | 0x0000E002 |
Njerëzit e tij përcaktohen si:
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
|
31 |
LOCK |
URO |
0: Ky regjistër mund të lexohet dhe shkruhet në modalitetin e përdoruesit;
1: Ky regjistër mund të lexohet dhe shkruhet vetëm në modalitetin e makinës. Shënim: Ky bit konfigurimi është i vlefshëm nga versioni 1.0 e tutje. |
0 |
| [30:6] | Rezervuar | URO | Rezervuar | 0x380 |
|
5 |
GIHWSTKNEN |
URW1 |
Ndërprerja globale dhe mbyllja e stivës së harduerit janë aktivizuar.
Shënim: Ky bit përdoret shpesh në sistemet operative në kohë reale. Kur konteksti ndërrohet gjatë një ndërprerjeje, vendosja e këtij biti mund të çaktivizojë ndërprerjen globale dhe të shtyjë grumbullin e harduerit. Kur ndërrimi i kontekstit të përfundojë dhe ndërprerja të kthehet, hardueri do fshije automatikisht këtë bit. |
0 |
| 4 | Rezervuar | URO | Rezervuar | 0 |
| [3:2] | PMTCFG | URW | Konfigurimi i biteve të parandalimit me përparësi:
00: Numri i biteve të parandalimit është 0; 01: Numri i biteve të parandalimit është 1; 10: Numri i biteve të parandalimit është 2; 11: Numri i biteve të parandalimit është 3; Shënim: Ky bit i konfigurimit është i vlefshëm pas 1.0. |
0 |
| 1 | DËGJONI | URW | Funksioni i foleve të ndërprerjes është i aktivizuar dhe vlera fikse është 1: | 1 |
| 0: Çaktivizo;
1: Aktivizo. Shënim: 1. Niveli aktual i foleve kontrollohet nga NEST_LVL në CSR 0xBC1; 2. Mund të jenë vetëm versionet pas 1.0 shkruar. |
||||
| 0 | HWSTKEN | URW | Aktivizimi i pirgut të harduerit:
0: Funksioni i shtypjes së pirgut të harduerit është i çaktivizuar; 1: Funksioni i shtypjes së stivës së harduerit është aktivizuar. |
0 |
Regjistri bazë i adresave të përjashtimit të modalitetit të makinës (mtvec)
| Emri | CSR Adresa | Qasja | Përshkrimi | Rivendos vlerën |
| mtvec | 0x305 | MRW | Regjistri i adresave bazë të përjashtimit | 0x00000000 |
Njerëzit e saj përkufizohen si
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:2] | BASEADDR[31:2] | MRW | Ndërprerja e adresës së bazës së tabelës vektoriale, ku
bitet [9:2] janë fiksuar në 0. |
0 |
| 1 | MODE1 |
MRO |
Modaliteti i njohjes së tabelës vektoriale të ndërprerjes: 0: Identifikoni sipas instruksionit të kërcimit, me shtrirje të kufizuar dhe mbështesni instruksionet që nuk kërcejnë;
1: Identifiko me adresë absolute, mbështet gamën e plotë, por duhet të kërcejë. Shënim: Ky bit është i vlefshëm vetëm për V3B/C. |
0 |
| 0 | MODE0 | MRW | Zgjedhja e modalitetit të adresës së hyrjes së ndërprerjes ose përjashtimit.
0: Përdorimi i adresës uniforme të hyrjes. 1: Kompensimi i adresës bazuar në numrin e ndërprerjes *4. |
0 |
Për MCU me mikroprocesorë të serisë V3, MODE0 është konfiguruar të jetë 1 si parazgjedhje në fillim file, dhe hyrjet për përjashtime ose ndërprerje kompensohen sipas numrit të ndërprerjes *4. Vini re se mikroprocesori V3A ruan një instruksion kërcimi në tabelën vektoriale, ndërsa mikroprocesori V3B/C mund ose një instruksion kërcimi ose të përdorë adresën absolute të funksionit të ndërprerjes, e cila është konfiguruar si një adresë absolute në fillimin e paracaktuar. file.
Regjistri i konfigurimit të mikroprocesorit (korrektori)
Ky regjistër është i pavlefshëm për V3A:
| Emri | CSR Adresa | Qasja | Përshkrimi | Rivendos vlerën |
| corecfgr | 0xBC0 | MRW | Regjistri i konfigurimit të mikroprocesorit | 0x00000001 |
Njerëzit e saj përkufizohen si
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:8] | Rezervuar | MRO | Rezervuar | 0 |
|
7 |
CSTA_FAULT_IE |
MRW |
Aktivizo ndërprerjen e gabimit të statusit bazë:
0: Në gabimin e statusit, nuk krijohet asnjë ndërprerje NMI; 1: Në gabimin e statusit, ndërprerja NMI është gjeneruar. |
0 |
| 6 | Rezervuar | MRO | Mbaje 0. | 0 |
| 5 | IE_REMAP_EN | MRW | Hartëzimi i regjistrit MIE mundëson:
0: Adresa CSR 0x800 është një regjistër vetëm për lexim dhe vlera e kthimit është vlera e STATUS; 1: Bitët 3 dhe 7 të adresës CSR 0x800 janë përshtatur në bitin MIE të regjistrit STATUS dhe bit MPIE të regjistrit STATUS, përkatësisht. |
0 |
| 4 | Rezervuar | MRO | Rezervuar | 0 |
| 3 | ROM_LOOP_ACC | MRW | Përshpejtimi i lakut të udhëzimeve të zonës ROM mundëson:
0: Fikni funksionin e nxitimit ciklik në zonën ROM; 1: Udhëzimet e vazhdueshme me një trup cikli brenda 128 bajt do të përshpejtohen plotësisht, ndërsa ato me një trup cikli brenda 256 bajt do të përshpejtohen pjesërisht; |
0 |
| 2 | ROM_JUMP_ACC | MRW | Përshpejtimi i kërcimit të udhëzimeve të zonës ROM është aktivizuar:
0: Çaktivizoni përshpejtimin e kërcimit të udhëzimeve të zonës ROM; 1: Aktivizo përshpejtimin e kërcimit të udhëzimeve në zonën ROM. |
0 |
| [1:0] | FETCH_MODE | MRW | Modaliteti i marrjes:
00: Marrja paraprake është joaktiv. Funksioni i marrjes paraprake të instruksionit është i fikur për të shmangur operacionet e pavlefshme të marrjes së instruksioneve dhe ka maksimumi një udhëzim të vlefshëm në tubacionin e CPU. Ky model ka konsumin më të ulët të energjisë dhe performanca e tij bie me rreth 2 ~ 3 herë. 01: Modaliteti i marrjes paraprake 1. Kur funksioni i marrjes paraprake të instruksionit është i aktivizuar, CPU-ja do të vazhdojë të aksesojë memorien e instruksioneve derisa numri i instruksioneve që do të ekzekutohen në buferin e brendshëm të instruksioneve të kalojë një numër të caktuar ose tamponi i instruksioneve të jetë i plotë, dhe marrja e udhëzimeve do të pezullohet; (Dështimi i parashikimit të CPU-së do të çojë në funksionim të tepërt të tërheqjes, dhe në disa raste, njësia e ekzekutimit do të prezantojë 0 ~ 2 cikle flluskash dhe performanca e shumicës së programeve nuk do të ulet dukshëm); 10: Rezervuar; |
0x1 |
Ndërprerja e regjistrit të kontrollit të mbivendosur (inestcr)
Ky regjistër është i pavlefshëm vetëm për V3A:
| Emri | CSR Adresa | Qasja | Përshkrimi | Rivendos vlerën |
| investitor | 0xBC1 | MRW | Ndërprerja e regjistrit të kontrollit të mbivendosur | 0x00000000 |
Njerëzit e saj përkufizohen si
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| 31 | Rezervuar | MRO | Rezervuar | 0 |
| 30 | NEST_OV | MRW | Ndërprerja/përjashtimi i bitit të flamurit të mbivendosur të mbivendosur, shkruani 1 për të pastruar:
0: Ndërprerja nuk ka tejmbushur; 1: Flamuri i tejmbushjes së ndërprerjes. Shënim: Mbyllja e ndërprerjes do të ndodhë vetëm kur ekzekutohet funksioni i shërbimit të ndërprerjes dytësore për të gjeneruar një përjashtim instruksioni ose ndërprerje NMI. Në këtë kohë, përjashtimi dhe ndërprerja NMI hyjnë normalisht, por grumbulli i CPU-së tejmbushet, kështu që nuk mund të dilni nga ky përjashtim dhe NMI ndërpret. |
0 |
| [29:12] | Rezervuar | MRO | Rezervuar | 0 |
| [11:8] | NEST_STA | MRO | Biti i flamurit të statusit të mbivendosur:
0000: Pa ndërprerje; 0001: Ndërprerja e nivelit 1; 0011: ndërprerja e nivelit 2 (foleja me 1 nivel); |
0 |
| 0111: Ndërprerja e nivelit 3 (mbushje);
1111: Ndërprerja e nivelit 4 (mbushje). |
||||
| [7:2] | Rezervuar | MRO | Rezervuar | 0 |
| [1:0] | NEST_LVL | MRW | Niveli i folesë:
00: Folezimi është i ndaluar dhe funksioni i foleve është i fikur; 01: Fletëzimi i nivelit të parë, i cili aktivizon funksionin e foleve; Të tjera: E pavlefshme. Shënim: Shkruani 10 ose 11 në këtë fushë dhe fusha do të vendoset në 01. Kur shkruani 11 në këtë fushë, lexoni këtë regjistër për të marrë nivelin më të lartë të foleve të çipit. |
0 |
Regjistri i aktivizimit të ndërprerjes globale të modalitetit të përdoruesit (praktikanti)
Ky regjistër është i pavlefshëm vetëm për V3A:
| Emri | CSR Adresa | Qasja | Përshkrimi | Rivendos vlerën |
| xhinter | 0x800 | URW | Regjistri i aktivizimit të ndërprerjes globale | 0x00000000 |
Ky regjistër përdoret për të kontrolluar aktivizimin dhe maskimin e ndërprerjes globale. Aktivizimi dhe maska e ndërprerjes globale në modalitetin e makinës mund të kontrollohen nga bitet MIE dhe MPIE në status, por ky regjistër nuk mund të përdoret në modalitetin e përdoruesit.
Regjistri i aktivizimit të ndërprerjes globale gintenr është hartëzimi i MIE dhe MPIE në mstatus dhe mund të përdoret për të vendosur dhe pastruar MIE dhe MPIE duke përdorur gintenr në modalitetin e përdoruesit.
Secila prej tyre përkufizohet si:
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:13] | Rezervuar | URO | Rezervuar | 0 |
| [12:11] | MPP | URO | Hyni në modalitetin e privilegjuar përpara ndërprerjes. | 0 |
| [10:8] | Rezervuar | URO | Rezervuar | 0 |
| 7 | MPIE | URW | Kur aktivizohet 0xBC0(CSR)bit5, ky bit
mund të lexohet dhe shkruhet në modalitetin e përdoruesit. |
0 |
| [6:4] | Rezervuar | URO | Rezervuar | 0 |
| 3 | MIE | URW | Kur aktivizohet 0xBC0(CSR)bit5, ky bit
mund të lexohet dhe shkruhet në modalitetin e përdoruesit. |
0 |
| [1:0] | Rezervuar | URO | Rezervuar | 0 |
Ndërprerja e folezimit
Në lidhje me ndërprerjen, regjistrin e konfigurimit PFIC_CFGR dhe regjistrin e përparësisë së ndërprerjes PFIC_IPRIOR, mund të lejohet të ndodhë foleja e ndërprerjeve. Aktivizo nesting në regjistrin e konfigurimit të ndërprerjeve (Nesting është aktivizuar si parazgjedhje për mikroprocesorët e serisë V3) dhe konfiguro prioritetin e ndërprerjes përkatëse. Sa më e vogël të jetë vlera e përparësisë, aq më e lartë është përparësia. Sa më e vogël të jetë vlera e bitit të parandalimit, aq më i lartë është përparësia e parandalimit. Nëse ka ndërprerje që varen në të njëjtën kohë nën të njëjtin përparësi parandalimi, mikroprocesori i përgjigjet ndërprerjes me vlerën e prioritetit më të ulët (përparësi më të lartë) së pari.
Prolog/Epilog i harduerit (HPE)
- Kur ndodh një përjashtim ose ndërprerje, mikroprocesori ndalon rrjedhën aktuale të programit dhe kalon në ekzekutimin e funksionit të trajtimit të përjashtimit ose ndërprerjes, vendi i rrjedhës aktuale të programit duhet të ruhet. Pas kthimit të përjashtimit ose ndërprerjes, është e nevojshme të rivendosni faqen dhe të vazhdoni ekzekutimin e rrjedhës së programit të ndaluar. Për mikroprocesorët e serisë V3, "siti" këtu i referohet të gjithë regjistrave të Ruajtur në Thirrje në Tabelën 1-2.
- Mikroprocesorët e serisë V3 mbështesin ruajtjen automatike të harduerit me një cikël të 16 regjistrave në formë të ruajtur nga thirrësi në një zonë të brendshme të stivës që nuk është e dukshme për përdoruesin. Kur kthehet një përjashtim ose ndërprerje, cikli i vetëm i harduerit rikthen automatikisht të dhënat nga zona e brendshme e stivës në regjistrat në formë 16. HPE mbështet folenë deri në 2 nivele të thella.
- Një skemë e grumbullit të presionit të mikroprocesorit është paraqitur në figurën e mëposhtme.

Shënim:
- Funksionet e ndërprerjes që përdorin HPE duhet të kompilohen duke përdorur MRS ose zinxhirin e veglave të ofruara prej tij dhe funksioni i ndërprerjes duhet të deklarohet me __atribut__((interrupt(“WCH-Interrupt-fast”))).
- Funksioni i ndërprerjes duke përdorur stack push deklarohet nga __atributi__((interrupt())).
Pa tabela vektoriale (VTF)
- Kontrolluesi i programueshëm i ndërprerjeve të shpejta (PFIC) ofron 4 kanale VTF, dmth., akses të drejtpërdrejtë në hyrjen e funksionit të ndërprerjes pa kaluar nëpër procesin e kërkimit të tabelës së vektorit të ndërprerjeve.
- Kanali VTF mund të aktivizohet duke shkruar numrin e tij të ndërprerjes, adresën bazë të funksionit të shërbimit të ndërprerjes dhe adresën e kompensimit në regjistrin përkatës të kontrolluesit PFIC ndërsa konfiguroni normalisht një funksion ndërprerje.
- Procesi i përgjigjes PFIC për ndërprerje të shpejta dhe pa tabela është paraqitur në Figurën 3-2 më poshtë.

Mbrojtja fizike e memories PMP
- Për të përmirësuar sigurinë e sistemit, moduli i mbrojtjes fizike të memories (PMP) është projektuar sipas standardit të arkitekturës RISC-V për mikroprocesorët e serisë V3 të elbit malor. Mbështetet menaxhimi i të drejtave të aksesit deri në 4 rajone fizike. Lejet përfshijnë atributet leximi (R), shkrimi (W) dhe ekzekutimi (X), dhe gjatësia e zonës së mbrojtur mund të vendoset në të paktën 4 bajt. Moduli PMP gjithmonë hyn në fuqi në modalitetin e përdoruesit, por mund të hyjë në fuqi opsionalisht duke kyçur atributin (L) në modalitetin e makinës.
- Nëse qasja shkel kufirin aktual të lejes, do të shkaktojë një ndërprerje jonormale. Moduli PMP përfshin katër grupe të regjistrave të konfigurimit 8-bit (Një grup prej 32-bitësh) dhe katër grupe regjistrash adresash, që të gjithë duhet të aksesohen në modalitetin e makinës me udhëzim CSR.
- Shënim: Numri i zonave të mbrojtura të mbështetura nga PMP në modele të ndryshme të mikroprocesorëve mund të jetë i ndryshëm, dhe numri i mbështetur nga regjistrat pmpcfg dhe pmpaddr është gjithashtu i ndryshëm. Shih tabelën 1-1 për detaje.
Set i regjistrave PMP
Lista e regjistrave CSR të mbështetur nga moduli PMP i mikroprocesorit V3 është paraqitur në tabelën 4-1 më poshtë.
Tabela 4-1 Kompleti i regjistrave të moduleve PMP
| Emri | Adresa CSR | Qasja | Përshkrimi | Rivendos vlerën |
| pmpcfg0 | 0x3A0 | MRW | Regjistri i konfigurimit PMP 0 | 0x00000000 |
| pmpaddr0 | 0x3B0 | MRW | Regjistri i adresave PMP 0 | 0xXXXXXXXXX |
| pmpaddr1 | 0x3B1 | MRW | Regjistri i adresave PMP 1 | 0xXXXXXXXXX |
| pmpaddr2 | 0x3B2 | MRW | Regjistri i adresave PMP 2 | 0xXXXXXXXXX |
| pmpaddr3 | 0x3B3 | MRW | Regjistri i adresave PMP 3 | 0xXXXXXXXXX |
pmp
pmpcfg është regjistri i konfigurimit të njësisë PMP dhe çdo regjistër përmban katër fusha pompimi 8-bit, që korrespondojnë me konfigurimin e katër rajoneve, dhe pompimi përfaqëson vlerën e konfigurimit të rajonit i. Formati i tij është paraqitur në tabelën e mëposhtme 4-2.
Tabela 4-2 regjistri pmpcfg0
pmpcfg përdoret për të konfiguruar zonën I dhe përkufizimi i bitit të tij përshkruhet në tabelën e mëposhtme 4-3.
Tabela 4-3 pmp
| Bit | Emri | Përshkrimi |
| 7 | L | Bllokimi është i aktivizuar dhe mund të zhbllokohet në modalitetin e makinës. 0: Jo i kyçur;
1: Blloko regjistrin përkatës. |
| [6:5] | – | Rezervuar |
| [4:3] | A | Përzgjedhja e shtrirjes së adresës dhe zonës së mbrojtjes. 00: FAKTUAR (PMP joaktiv)
01: TOR (Mbrojtja e shtrirjes në krye) 10: NA4 (Mbrojtje e fiksuar me katër bajtë) 11: NAPOT (2(G+2) Mbrojtje bajt, G≥1) |
| 2 | X | Atribut i ekzekutueshëm. |
| 0: Nuk ka leje ekzekutimi;
1: Ekzekutoni lejen. |
||
|
1 |
W |
Atribut i shkrueshëm.
0: Nuk ka leje shkrimi 1: Leje shkrimi. |
|
0 |
R |
Atribut i lexueshëm
0: Nuk ka leje leximi 1: Leje leximi. |
pmpaddr
Regjistri pmpaddr përdoret për të konfiguruar adresën e zonës I. Përkufizimi standard është nën arkitekturën RV32, e cila është kodimi i 32 bitëve të sipërm të një adrese fizike 34-bit, dhe formati i tij tregohet në tabelën e mëposhtme 4-4 .
E gjithë hapësira e adresave fizike të mikroprocesorit V3 është 4G, kështu që dy bitet e sipërme të këtij regjistri nuk përdoren.
Tabela 4-4 pmpaddr
Kur zgjidhet NAPOT, biti i ulët i regjistrit të adresave përdoret gjithashtu për të treguar madhësinë e zonës aktuale të mbrojtjes, siç tregohet në tabelën e mëposhtme, ku 'y' është një pjesë e regjistrit.
Tabela 4-5 Tabela e marrëdhënieve ndërmjet konfigurimit PMP dhe regjistrit të adresave dhe zonës së mbrojtur.
| pmpaddr | pmpcfg. A | Përputhja e adresës bazë dhe madhësisë |
| yyyy…yyyy | NA4 | Me 'yy…yyyy00' si adresën bazë, zona 4-bajtë është e mbrojtur. |
| yyyy…vvv0 | NAPOT | Me 'yy…yyy000' si adresën bazë, zona 8-bajtë është e mbrojtur. |
| yyyy…yy01 | NAPOT | Me 'yy…yy0000' si adresën bazë, zona 16-bajtë është e mbrojtur. |
| yyyy…y011 | NAPOT | Me 'yy…y00000' si adresën bazë, zona 16-bajtë është e mbrojtur. |
| … | … | … |
| vv01…111 | NAPOT | Me 'y0…000000' si adresën bazë, zona 231-bajtë është e mbrojtur. |
| yy011…111 | NAPOT | Mbroni të gjithë zonën 232 byte. |
Mekanizmi Mbrojtës
X/W/R në pmpcfg përdoret për të vendosur autoritetin mbrojtës të zonës I dhe shkelja e autoritetit përkatës do të shkaktojë një përjashtim përkatës:
- Kur përpiqeni të merrni instruksione në zonën PMP pa autoritet ekzekutimi, do të shkaktojë një përjashtim të gabimit të hyrjes në marrjen e instruksionit (mcause=1).
- Kur përpiqeni të shkruani të dhëna në zonën PMP pa leje me shkrim, do të shkaktojë një përjashtim gabimi (mcause=7) në aksesin e udhëzimeve të dyqanit.
- Kur përpiqeni të lexoni të dhëna në zonën PMP pa lejen e leximit, do të shkaktojë një gabim jonormal të aksesit të memories (mcause=5) për instruksionin e ngarkesës.
A në pmpcfg përdoret për të vendosur gamën e mbrojtjes dhe shtrirjen e adresave të rajonit I, dhe për të mbrojtur memorien e rajonit A_ADDR ≤ < i > < B_ADDR (si A_ADDR ashtu edhe B_ADDR kërkohet të rreshtohen në 4 bajt):
- Nëse B _ ADDR–A_ADDR = = 22, modaliteti NA4 miratohet;
- Nëse B _ ADDR–A_ADDR = = 2(G+2), G≥1, dhe një adresë _ është 2(g+2), metoda NAPOT adoptohet;
- Përndryshe, modaliteti TOP miratohet.
Tabela 4-6 Metodat e përputhjes së adresave PMP
| Një vlerë | Emri | Përshkrimi |
| 0b00 | FAKT | Nuk ka zonë për të mbrojtur |
| 0b01 | TOR | Mbrojtja e zonës së rreshtuar në krye.
Nën pmp pmpaddri = B_ADDR >> 2. Shënim: Nëse zona 0 e PMP është konfiguruar si modaliteti TOR (i=0), kufiri i poshtëm i zonës së mbrojtjes është 0 adresa, dmth 0 ≤ addr < pmpaddr0, të gjitha brenda intervalit të përputhjes. |
| 0b10 | NA4 | Mbrojtje fikse e zonës 4-bajtë.
pmp |
| 0b11 | NAPOT | Mbroni rajonin 2(G+2) me G ≥ 1, kur A_ADDR është në linjë 2(G+2). pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1. |
- Biti L në pmp
- Mikroprocesorët e serisë QingKe V3 mbështesin mbrojtjen e zonave të shumta. Kur i njëjti operacion përputhet me disa zona në të njëjtën kohë, zona me numrin më të vogël përputhet së pari.
Kohëmatësi i sistemit (SysTick)
- Mikroprocesori i serisë QingKe V3 është projektuar me një numërues 32-bit ose 64-bit (SysTick) brenda. Burimi i orës së tij është ora e sistemit ose ndarja e tij me 8 frekuenca, dhe V3A mbështet vetëm ndarjen me 8 frekuenca.
- Mund të sigurojë një bazë kohore, kohën dhe kohën e matjes për një sistem operativ në kohë reale. Llojet e ndryshme të regjistrave të përfshirë në kohëmatës kanë adresa të ndryshme hartografike, siç tregohet në tabelat e mëposhtme 5-1 dhe 5-2.
Tabela 5-1 Lista e regjistrave V3A SysTick
| Emri | Qasja në adresë | Përshkrimi | Rivendos vlerën |
| STK_CTLR | 0xE000F000 | Regjistri i kontrollit të numëruesit të sistemit | 0x00000000 |
| STK_CNTL | 0xE000F004 | Regjistri i ulët i numëruesit të sistemit | 0xXXXXXXXXX |
| STK_CNTH | 0xE000F008 | Regjistri i lartë i numëruesit të sistemit
Shënim: E vlefshme vetëm për V3A. |
0xXXXXXXXXX |
| STK_CMPLR | 0xE000F00C | Regjistri i ulët i vlerës së krahasimit të numërimit të sistemit | 0xXXXXXXXXX |
| STK_CMPHR | 0xE000F010 | Regjistër i lartë i vlerës së krahasimit të numërimit të sistemit
Shënim: E vlefshme vetëm për V3A. |
0xXXXXXXXXX |
Tabela 5-2 V3 Lista e regjistrave SysTick të modeleve të tjera
| Emri | Qasja në adresë | Përshkrimi | Rivendos vlerën |
| STK_CTLR | 0xE000F000 | Regjistri i kontrollit të numëruesit të sistemit | 0x00000000 |
| STK_SR | 0xE000F004 | Regjistri i statusit të numëruesit të sistemit | 0x00000000 |
| STK_CNTL | 0xE000F008 | Regjistri i ulët i numëruesit të sistemit | 0xXXXXXXXXX |
| STK_CMPLR | 0xE000F010 | Numëroni vlerën e krahasimit regjistër të ulët | 0xXXXXXXXXX |
Çdo regjistër përshkruhet në detaje si më poshtë.
Regjistri i kontrollit të numëruesit të sistemit (STK_CTLR)
Tabela 5-3 Regjistrat e kontrollit SysTick
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:5] | Rezervuar | RO | Rezervuar | 0 |
|
4 |
MODE |
RW |
Mënyra e numërimit: 1: Numërimi mbrapsht;
0: Numëroni lart. Shënim: I pavlefshëm për V3A. |
0 |
|
3 |
STRE |
RW |
Biti i aktivizimit të numrit automatik të ringarkimit:
1: Numëroni përsëri nga 0 pasi të keni numëruar deri në vlerën e krahasimit dhe numëroni përsëri nga vlera e krahasimit pasi të keni numëruar mbrapsht në 0; 0: Vazhdo numërimin lart/poshtë. Shënim: I pavlefshëm për V3A. |
0 |
|
2 |
STCLK |
RW |
Biti i zgjedhjes së burimit të kundërorës:
1: HCLK si bazë kohore; 0: HCLK/8 si bazë kohore. Shënim: Është i pavlefshëm për V3A, i cili mbështet vetëm HCLK/8 si bazë kohore. |
0 |
| 1 | FAQJA | RW | Bitët e kontrollit të aktivizimit të ndërprerjes së kundërt: | 0 |
| 1: Aktivizo ndërprerjen e numëruesit; 0: Çaktivizo ndërprerjen e numëruesit.
Shënim: I pavlefshëm për V3A. |
||||
| 0 | STE | RW | Numëruesi i sistemit mundëson një bit kontrolli. 1: Aktivizo numëruesin e sistemit STK;
0: Çaktivizoni numëruesin e sistemit STK dhe numëruesi ndalon së numëruari. |
0 |
Regjistri i statusit të numëruesit të sistemit (STK_SR)
Ky regjistër nuk zbatohet për V3A.
Tabela 5-4 Regjistri i ulët i numëruesit SysTick
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
|
31 |
SWIE |
RW |
Aktivizimi i nxitjes së ndërprerjes së softuerit (SWI): 1: Ndërprerja e softuerit të aktivizimit;
0: Fikni këmbëzën. Shënim: Ky bit duhet të fshihet pas hyrjes në ndërprerjen e softuerit, përndryshe do të aktivizohet gjithmonë. |
0 |
| [30:1] | Rezervuar | RO | Rezervuar | 0 |
|
0 |
CNTIF |
RW |
Flamuri i krahasimit të numërimit, shkruani qartë 0, shkruani 1 është i pavlefshëm:
1: Numëroni deri në vlerën e krahasimit dhe numëroni deri në 0; 0: Vlera e krahasimit nuk arrihet. |
0 |
Regjistri i ulët i numëruesit të sistemit (STK_CNTL)
Tabela 5-5 Regjistri i ulët i numëruesit SysTick
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | CNTL | RW | Vlera aktuale e numërimit të numëruesit është 32 bit më e ulët. Për V3A, ky regjistër mund të lexohet si 8-bit / 16-bit
/32-bit, por mund të shkruhet vetëm si 8-bit, dhe të tjera modelet nuk janë të kufizuara. |
0xXXXXXX XXX |
Shënim: Regjistroni STK_CNTL dhe regjistroni STK_CNTH në V3A së bashku përbëjnë një numërues sistemi 64-bit.
Regjistri i lartë i numëruesit të sistemit (STK_CNTH)
Tabela 5-6 Regjistri i lartë i numëruesit SysTick
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | CNTH | RW | Vlera aktuale e numërimit të numëruesit është 32 bit më e lartë. Ky regjistër mund të lexohet me 8-bit/16-bit/32-bit, por mund të shkruhet vetëm me 8-bit.
Shënim: E vlefshme vetëm për V3A. |
0xXXXXXX XXX |
Shënim: Regjistroni STK_CNTL dhe regjistroni STK_CNTH në V3A së bashku përbëjnë një numërues sistemi 64-bit.
Regjistri i ulët i vlerës së krahasimit të numrit të sistemit (STK_CMPLR)
Tabela 5-7 Regjistri i ulët i vlerës së krahasimit të SysTick
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | CMPL | RW | Vendosni vlerën e krahasimit të numëruesit në 32 bit më të ulët. Kur vlera CMP dhe vlera CNT janë të barabarta, do të aktivizohet një ndërprerje STK. Për V3A, ky regjistër mund të lexohet si 8-bit /16-bit /32-bit, por mund të lexohet vetëm si
shkruar si 8-bit, dhe modelet e tjera nuk janë të kufizuara. |
0xXXXXXX XXX |
Shënim: Regjistri STK_CMPLR dhe regjistri STK_CMPHR në V3A së bashku përbëjnë vlerën e krahasimit të numëruesit 64-bit.
Regjistri i lartë i vlerës së krahasimit të numrit të sistemit (STK_CMPHR)
Tabela 5-8 Regjistri i lartë i vlerës së krahasimit SysTick
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | CMPH | RW | Vendosni vlerën e krahasimit të numëruesit 32 bit më të lartë. Ndërprerja STK do të aktivizohet kur vlera CMP dhe vlera CNT janë të barabarta.
Ky regjistër mund të lexohet me 8-bit/16-bit/32-bit, por mund të shkruhet vetëm me 8-bit. Shënim: E vlefshme vetëm për V3A. |
0xXXXXXX XXX |
Shënim: Regjistri STK_CMPLR dhe regjistri STK_CMPHR në V3A së bashku përbëjnë vlerën e krahasimit të numëruesit 64-bit.
Cilësimet e procesorit me fuqi të ulët
- Mikroprocesorët e serisë QingKe V3 mbështesin gjendjen e gjumit nëpërmjet udhëzimeve WFI (Wait for Interrupt) për të arritur konsum të ulët të energjisë statike.
- Së bashku me regjistrin e kontrollit të sistemit të PFIC (PFIC_SCTLR), mund të zbatohen mënyra të ndryshme të gjumit dhe udhëzime WFE.
Hyni në gjumë
- Mikroprocesorët e serisë QingKe V3 mund të shkojnë në gjumë në dy mënyra, Wait for Interrupt (WFI) dhe Wait For Event (WFE). Metoda WFI do të thotë që mikroprocesori shkon në gjumë, pret që një ndërprerje të zgjohet dhe më pas zgjohet deri në ndërprerjen përkatëse për të ekzekutuar. Metoda WFE do të thotë që mikroprocesori shkon në gjumë, pret që një ngjarje të zgjohet dhe zgjohet për të vazhduar ekzekutimin e rrjedhës së programit të ndaluar më parë.
- Standardi RISC-V mbështet udhëzimet WFI dhe komanda WFI mund të ekzekutohet drejtpërdrejt për të hyrë në gjumë me metodën WFI. Për metodën WFE, biti WFITOWFE në regjistrin e kontrollit të sistemit PFIC_SCTLR përdoret për të kontrolluar komandat e mëvonshme WFI si përpunim WFE për të arritur metodën WFE për të hyrë në gjumë.
- Thellësia e gjumit kontrollohet sipas bitit SLEEPDEEP në PFIC_SCTLR.
- Nëse SLEEPDEEP në regjistrin PFIC_SCTLR pastrohet në zero, mikroprocesori hyn në modalitetin e gjumit dhe ora e brendshme e njësisë lejohet të fiket, përveç SysTick dhe një pjesë të logjikës së zgjimit.
- Nëse është vendosur SLEEPDEEP në regjistrin PFIC_SCTLR, mikroprocesori hyn në modalitetin e gjumit të thellë dhe të gjitha orët e qelizave lejohen të fiken.
- Kur mikroprocesori është në modalitetin Debug, nuk është e mundur të hyni në asnjë lloj modaliteti Sleep.
Zgjimi në gjumë
Mikroprocesorët e serisë QingKe V3 mund të zgjohen pas gjumit për shkak të WFI dhe WFE në mënyrat e mëposhtme.
Pasi metoda WFI shkon në gjumë, ajo mund të zgjohet nga
- Mikroprocesori mund të zgjohet nga burimi i ndërprerjes të cilit i përgjigjet kontrolluesi i ndërprerjes. Pas zgjimit, mikroprocesori ekzekuton së pari funksionin e ndërprerjes.
- Hyni në modalitetin e gjumit, kërkesa për korrigjim mund të bëjë që mikroprocesori të zgjohet dhe të futet në gjumë të thellë, kërkesa për korrigjim nuk mund ta zgjojë mikroprocesorin.
Pasi metoda WFE shkon në gjumë, mikroprocesori mund të zgjohet nga sa vijon.
- Ngjarjet e brendshme ose të jashtme, kur nuk ka nevojë të konfiguroni kontrolluesin e ndërprerjes, zgjohuni dhe vazhdoni të ekzekutoni programin.
- Nëse aktivizohet një burim ndërprerjeje, mikroprocesori zgjohet kur gjenerohet një ndërprerje dhe pas zgjimit, mikroprocesori ekzekuton së pari funksionin e ndërprerjes.
- Nëse biti SEVONPEND në PFIC_SCTLR është i konfiguruar, kontrolluesi i ndërprerjes nuk e aktivizon ndërprerjen, por kur gjenerohet një sinjal i ri në pritje të ndërprerjes (sinjali në pritje i gjeneruar më parë nuk hyn në fuqi), ai gjithashtu mund të bëjë që mikroprocesori të zgjohet dhe flamuri përkatës i ndërprerjes në pritje duhet të fshihet manualisht pas zgjimit.
- Kërkesa për korrigjim në modalitetin e gjumit mund të bëjë që mikroprocesori të zgjohet dhe të futet në gjumë të thellë, kërkesa për korrigjim nuk mund ta zgjojë mikroprocesorin.
- Përveç kësaj, gjendja e mikroprocesorit pas zgjimit mund të kontrollohet duke konfiguruar bitin SLEEPONEXIT në PFIC_SCTLR.
- SLEEPONEXIT është vendosur dhe instruksioni i kthimit të ndërprerjes së nivelit të fundit (mret) do të aktivizojë gjumin e modalitetit WFI.
SLEEPONEXIT pastrohet pa asnjë efekt.
Produkte të ndryshme MCU të pajisura me mikroprocesorë të serisë V3 mund të adoptojnë mënyra të ndryshme gjumi, të fikin periferikë dhe orë të ndryshme, të zbatojnë politika të ndryshme të menaxhimit të energjisë dhe metoda të zgjimit sipas konfigurimeve të ndryshme të PFIC_SCTLR dhe të realizojnë mënyra të ndryshme me energji të ulët.
Mbështetje për korrigjimin e gabimeve
- Mikroprocesorët e serisë QingKe V3 përfshijnë një modul korrigjimi të harduerit që mbështet operacionet komplekse të korrigjimit. Kur mikroprocesori pezullohet, moduli i korrigjimit mund të hyjë në GPR, CSR, memorie, pajisje të jashtme, etj. të mikroprocesorit përmes komandave abstrakte, udhëzimeve të vendosjes së buferit të programit, etj. Moduli i korrigjimit mund të pezullojë dhe rifillojë funksionimin e mikroprocesorit.
- Moduli i korrigjimit ndjek specifikimin RISC-V External Debug Support Version0.13.2, dokumentacioni i detajuar mund të shkarkohet nga RISC-V International webfaqe.
Moduli i korrigjimit
- Moduli i korrigjimit brenda mikroprocesorit, i aftë për të kryer operacione korrigjimi të lëshuara nga hosti i korrigjimit, përfshin.
- Qasja në regjistra përmes ndërfaqes së korrigjimit
- Rivendosni, pezulloni dhe rifilloni mikroprocesorin përmes ndërfaqes së korrigjimit
- Lexoni dhe shkruani kujtesën, regjistrat e udhëzimeve dhe pajisjet e jashtme përmes ndërfaqes së korrigjimit
- Vendosni udhëzime të shumta arbitrare përmes ndërfaqes së korrigjimit
- Vendosni pikat e ndërprerjes së softuerit përmes ndërfaqes së korrigjimit
- Vendosni pikat e ndërprerjes së harduerit përmes ndërfaqes së korrigjimit
- Mbështet ekzekutimin automatik të komandës abstrakte
- Mbështet korrigjimin me një hap të vetëm
- Shënim: V3A nuk mbështet pikat e ndërprerjes së harduerit, pikat e ndërprerjes së harduerit V3B mbështesin përputhjen e adresave të udhëzimeve dhe pikat e ndërprerjes së harduerit V3C mbështesin përputhjen e adresave të udhëzimeve dhe adresave të të dhënave.
- Regjistrat e brendshëm të modulit të korrigjimit përdorin një kod adrese 7-bitësh dhe regjistrat e mëposhtëm zbatohen brenda mikroprocesorëve të serisë QingKe V3.
Tabela 7-1 Lista e regjistrave të modulit të korrigjimit
| Emri | Qasja në adresë | Përshkrimi |
| data0 | 0x04 | Regjistri i të dhënave 0, mund të përdoret për ruajtjen e përkohshme të të dhënave |
| data1 | 0x05 | Regjistri i të dhënave 1, mund të përdoret për ruajtjen e përkohshme të të dhënave |
| dekontroll | 0x10 | Regjistri i kontrollit të modulit të korrigjimit |
| dmstatus | 0x11 | Korrigjimi i statusit të modulit |
| hartinfo | 0x12 | Regjistri i statusit të mikroprocesorit |
| abstrakte | 0x16 | Regjistri abstrakt i statusit të komandës |
| komandë | 0x17 | Regjistri komandues abstrakt |
| auto abstrakte | 0x18 | Ekzekutimi automatik i komandës abstrakte |
| progbuf0-7 | 0x20-0x27 | Regjistrat e memories së udhëzimeve 0-7 |
| haltsum0 | 0x40 | Ndalo regjistrin e statusit |
- Pritësi i korrigjimit mund të kontrollojë pezullimin, rifillimin, rivendosjen e mikroprocesorit, etj. duke konfiguruar regjistrin e dekontrollit. Standardi RISC-V përcakton tre lloje komandash abstrakte: regjistri i aksesit, aksesi i shpejtë dhe memoria e aksesit.
- Mikroprocesori QingKe V3A mbështet vetëm aksesin në regjistër, modelet e tjera mbështesin aksesin në regjistër dhe memorie, por jo akses të shpejtë. Qasja në regjistra (GPR, CSR) dhe aksesi i vazhdueshëm në memorie mund të realizohet me komanda abstrakte.
- Moduli i korrigjimit zbaton 8 regjistra të memories së instruksioneve progbuf0-7, dhe hosti i korrigjimit mund të ruajë në memorien e memories shumë instruksione (të cilat mund të jenë instruksione të kompresuara) në buffer dhe mund të zgjedhë të vazhdojë ekzekutimin e udhëzimeve në regjistrat e memories së instruksionit pas ekzekutimit të komandës abstrakte ose të ekzekutojë direkt instruksionet e memorizuara.
- Shënim që udhëzimi i fundit në programe duhet të jetë një instruksion “ebreak” ose “c.ebreak”. Qasja në ruajtje, pajisje periferike, etj. është gjithashtu e mundur përmes komandave abstrakte dhe udhëzimeve të ruajtura në memorien e programeve.
- Çdo regjistër përshkruhet në detaje si më poshtë.
- Regjistri i të dhënave 0 (të dhënat 0)
Tabela 7-2 Përkufizimi i regjistrit të të dhënave
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | data0 | RW | Regjistri i të dhënave 0, përdoret për ruajtjen e përkohshme të të dhënave | 0 |
Regjistri i të dhënave 1 (të dhënat 1)
Tabela 7-3 data1 përkufizimi i regjistrit
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | data1 | RW | Regjistri i të dhënave 1, përdoret për ruajtjen e përkohshme të të dhënave | 0 |
Regjistri i kontrollit të modulit të korrigjimit (çekontrolli)
Ky regjistër kontrollon ndalimin, rivendosjen dhe rifillimin e mikroprocesorit. Pritësi i korrigjimit të gabimeve shkruan të dhëna në fushën përkatëse për të arritur pauzë (haltreq), rivendosje (ndmreset), rifillim (rinumereq). Ju përshkruani sa vijon.
Tabela 7-4 përcaktimi i regjistrit të dekontrollit
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| 31 | haltreq | WO | 0: Pastro kërkesën për pauzë
1: Dërgoni një kërkesë për pauzë |
0 |
| 30 | resumereq | W1 | 0: E pavlefshme
1: Rivendosni mikroprocesorin aktual Shënim: Shkrimi 1 është i vlefshëm dhe hardueri pastrohet pas rikuperimit të mikroprocesorit |
0 |
| 29 | Rezervuar | RO | Rezervuar | 0 |
| 28 | ackhavereset | W1 | 0: E pavlefshme
1: Pastro bitin e statusit të korrjes së mikroprocesorit |
0 |
| [27:2] | Rezervuar | RO | Rezervuar | 0 |
| 1 | ndmreset | RW | 0: Pastro rivendosjen
1: Rivendos të gjithë sistemin përveç modulit të korrigjimit |
0 |
| 0 | çaktivizoni | RW | 0: Rivendos modulin e korrigjimit
1: Moduli i korrigjimit funksionon siç duhet |
0 |
Korrigjimi i regjistrit të statusit të modulit (statusi dm)
- Ky regjistër përdoret për të treguar statusin e modulit të korrigjimit dhe është një regjistër vetëm për lexim me përshkrimin e mëposhtëm të secilit bit.
Tabela 7-5 përcaktimi i regjistrit dmstatus
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:20] | Rezervuar | RO | Rezervuar | 0 |
| 19 | allhavereset | RO | 0: E pavlefshme
1: Rivendosja e mikroprocesorit |
0 |
| 18 | anyhavereset | RO | 0: E pavlefshme
1: Rivendosja e mikroprocesorit |
0 |
| 17 | allresumeak | RO | 0: E pavlefshme
1: Rivendosja e mikroprocesorit |
0 |
| 16 | çdo resumeack | RO | 0: E pavlefshme
1: Rivendosja e mikroprocesorit |
0 |
| [15:14] | Rezervuar | RO | Rezervuar | 0 |
| 13 | aluviale | RO | 0: E pavlefshme
1: Mikroprocesori nuk është i disponueshëm |
0 |
| 12 | ndonjë dobi | RO | 0: E pavlefshme
1: Mikroprocesori nuk është i disponueshëm |
0 |
| 11 | të gjithë vrapojnë | RO | 0: E pavlefshme
1: Mikroprocesori po funksionon |
0 |
| 10 | çdo vrapim | RO | 0: E pavlefshme
1: Mikroprocesori po funksionon |
0 |
| 9 | e ndalur | RO | 0: E pavlefshme
1: Mikroprocesori është në pezullim |
0 |
| 8 | ndonjë i ndalur | RO | 0: E pavlefshme
1: Mikroprocesori jashtë pezullimit |
0 |
| 7 | të vërtetuara |
RO |
0: Kërkohet vërtetimi përpara se të përdorni modulin e korrigjimit
1: Moduli i korrigjimit është certifikuar |
0x1 |
| [6:4] | Rezervuar | RO | Rezervuar | 0 |
| [3:0] | version | RO | Versioni 0010 i arkitekturës mbështetëse të sistemit të korrigjimit: V0.13 | 0x2 |
Regjistri i statusit të mikroprocesorit (hartinfo)
Ky regjistër përdoret për të dhënë informacion në lidhje me mikroprocesorin tek hosti i korrigjimit dhe është një regjistër vetëm për lexim me çdo bit të përshkruar si më poshtë.
Tabela 7-6 Përkufizimi i regjistrit hartinfo
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:24] | Rezervuar | RO | Rezervuar | 0 |
| [23:20] | gërvishtje | RO | Numri i regjistrave gërvishtje të mbështetur | 0x3 |
| [19:17] | Rezervuar | RO | Rezervuar | 0 |
| 16 | Qasja në të Dhëna | RO | 0: Regjistri i të dhënave lidhet me adresën CSR
1: Regjistri i të dhënave vendoset në adresën e memories |
0x1 |
| [15:12] | madhësia e të dhënave | RO | Numri i regjistrave të të dhënave | 0x2 |
| [11:0] | shtimi i të dhënave |
RO |
Adresa e kompensuar e të dhënave të regjistrit të të dhënave0,
adresa bazë e të cilit është 0xe0000000, i nënshtrohet leximit specifik. |
0xXXX |
Kontrolli abstrakt i komandës dhe regjistrat e statusit (abstrakte)
Ky regjistër përdoret për të treguar ekzekutimin e komandës abstrakte. Pritësi i korrigjimit mund të lexojë këtë regjistër për të ditur nëse komanda e fundit abstrakte është ekzekutuar apo jo dhe mund të kontrollojë nëse është krijuar një gabim gjatë ekzekutimit të komandës abstrakte dhe llojin e gabimit, i cili përshkruhet në detaje si më poshtë.
Tabela 7-7 përkufizimet e regjistrit të abstrakteve
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:29] | Rezervuar | RO | Rezervuar | 0 |
| [28:24] | progbufsize | RO | Tregon numrin e programit buffer të programit
regjistrat e cache |
0x8 |
| [23:13] | Rezervuar | RO | Rezervuar | 0 |
| 12 | i zënë | RO | 0: Nuk po ekzekutohet asnjë komandë abstrakte
1: Ekzekutohen komanda abstrakte Shënim: Pas ekzekutimit, pajisja pastrohet. |
0 |
| 11 | Rezervuar | RO | Rezervuar | 0 |
| [10:8] | cmder | RW | Lloji i gabimit të komandës abstrakte 000: Nuk ka gabim
001: Ekzekutimi i komandës abstrakte për të shkruar në komandë, përmbledhje, regjistra abstraktë automatikë ose për të lexuar dhe shkruar në regjistrat e të dhënave dhe progbuf 010: Nuk mbështet komandën aktuale abstrakte 011: Ekzekutimi i komandës abstrakte me përjashtimin 100: Mikroprocesori nuk është i pezulluar ose i padisponueshëm dhe nuk mund të ekzekutojë komanda abstrakte 101: Gabim autobusi 110: Gabim i bitit të barazisë gjatë komunikimit 111: Gabime të tjera Shënim: Për shkrimin e bitit 1 përdoret për të pastruar zeron. |
0 |
| [7:4] | Rezervuar | RO | Rezervuar | 0 |
| [3:0] | zbritje | RO | Numri i regjistrave të të dhënave | 0x2 |
- Pritësit e korrigjimit të gabimeve mund të kenë akses në GPR, regjistra CSR dhe memorie duke shkruar vlera të ndryshme konfigurimi në regjistrin e komandave abstrakte.
- Gjatë qasjes në regjistra, bitet e regjistrit të komandës përcaktohen si më poshtë.
- Tabela 7-8 Përkufizimi i regjistrit të komandës gjatë qasjes në regjistra
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:24] | lloji cmd | WO | Lloji i komandës abstrakte 0: Regjistri i aksesit;
1: Qasje e shpejtë (nuk mbështetet); 2: Qasja në kujtesë. |
0 |
| 23 | Rezervuar | WO | Rezervuar | 0 |
| [22:20] | aarsize | WO | Qasuni në gjerësinë e bitit të të dhënave të regjistrit 000: 8-bit
001: 16-bit 010: 32-bit |
0 |
| 011: 64-bit (nuk mbështetet) 100: 128-bit (nuk mbështetet)
Shënim: Kur aksesoni regjistrat me pikë lundruese FPR, mbështetet vetëm aksesi 32-bit. |
||||
| 19 | aarpostincrement | WO | 0: Nuk ka efekt
1: Rritni automatikisht vlerën e regno pasi të keni akses në regjistër |
0 |
| 18 | post ekzekutiv | WO | 0: Nuk ka efekt
1: Ekzekutoni komandën abstrakte dhe më pas ekzekutoni komandën në progbuf |
0 |
| 17 | transferimi | WO | 0: Mos e ekzekutoni operacionin e specifikuar nga shkrimi
1: Ekzekutoni manipulimin e specifikuar nga shkrimi |
0 |
| 16 | shkruani | WO | 0: Kopjo të dhënat nga regjistri i specifikuar te data0 1: Kopjo të dhënat nga regjistri data0 në regjistrin e specifikuar |
0 |
| [15:0] | regno | WO | Specifikoni regjistrat e aksesit 0x0000-0x0fff janë CSR 0x1000-0x101f janë GPR |
0 |
Gjatë qasjes në memorie, bitet në regjistrin e komandës përcaktohen si më poshtë.
Tabela 7-9 Përkufizimi i komandës Regjistrohu kur hyn në kujtesë
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:24] | lloji cmd | WO | Lloji i komandës abstrakte 0: Regjistri i aksesit;
1: Qasje e shpejtë (nuk mbështetet); 2: Qasuni në kujtesë. |
0 |
| 23 | aamvirtual | WO | 0: Qasja në adresën fizike;
1: Hyni në adresën virtuale. |
0 |
| [22:20] | madhësia e krahut | WO | Qasni gjerësinë e bitit të të dhënave të kujtesës 000: 8-bit;
001: 16-bit; 010: 32-bit; 011: 64-bit (nuk mbështetet); 100: 128-bit (nuk mbështetet); |
0 |
| 19 | aampzbutje | WO | 0: Nuk ka ndikim;
1: Pas hyrjes me sukses në memorie, rrisni adresën e ruajtur në regjistrin data1 me numrin e bajteve që korrespondojnë me gjerësinë e bitit të konfiguruar sipas madhësisë së krahut. Aamsize=0, aksesohet me bajt, data1 plus 1. Aamsize=1, aksesohet me gjysmë fjalë, data1 plus 2. aamsize=2, aksesohet me bit, data1 plus 4. |
0 |
| 18 | post ekzekutiv | WO | 0: Nuk ka ndikim;
1: Ekzekutoni komandën në progbuf pasi të keni ekzekutuar komandën abstrakte. |
0 |
| 17 | Rezervë | RO | Rezervuar | 0 |
|
16 |
shkruani |
WO |
0: Lexoni të dhënat nga adresa e specifikuar nga data1 në data0
1: Shkruani të dhënat në data0 në adresën e specifikuar nga të dhëna 1. |
0 |
|
[15:14] |
objektiv-specifike |
WO |
Përkufizimi i mënyrës së leximit dhe shkrimit Shkruani:
00, 01: Shkruani drejtpërdrejt në kujtesë; 10: Pasi të dhënat në data0 janë OSE me bitet e të dhënave në memorie, rezultati shkruhet në memorie (Mbështetet vetëm aksesi i fjalëve). 11: Pas përmbledhjes së të dhënave në data0 me bitet e të dhënave në memorie, shkruajeni rezultatin në memorie (Mbështetet vetëm aksesi i fjalëve). Lexoni: 00, 01, 10, 11: Lexoni 0 direkt nga kujtesa. |
0 |
| [13:0] | Rezervë | RO | Rezervuar |
Regjistri automatik i ekzekutimit të komandës abstrakte (auto abstrakte)
Ky regjistër përdoret për të konfiguruar modulin e korrigjimit. Kur lexoni dhe shkruani progbufx dhe të dhënat e modulit të korrigjimit, komanda abstrakte mund të ekzekutohet përsëri.
Përshkrimi i këtij regjistri është si më poshtë:
Tabela 7-10 Përkufizimi abstrakt i regjistrit automatik
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:16] | autoexecprogbuf | RW | Nëse vendoset një bit, leximi dhe shkrimi përkatës i progbufx do të bëjë që komanda abstrakte në regjistrin e komandës të ekzekutohet përsëri.
Shënim: Seria V3 është projektuar me 8 progbufs, që korrespondon me bit [23:16]. |
0 |
| [15:12] | Rezervë | RO | Rezervuar | 0 |
| [11:0] | të dhëna automatike |
RW |
Nëse një bit vendoset në 1, leximi dhe shkrimi përkatës i regjistrit të të dhënave do të bëjë që komanda abstrakte në regjistrin e komandës të ekzekutohet përsëri.
Shënim: Seria V3 është projektuar me dy të dhëna regjistrat, që korrespondojnë me bit [1:0]. |
0 |
Regjistri i memories së udhëzimeve (progbufx)
Ky regjistër përdoret për të ruajtur çdo instruksion dhe për të vendosur operacionin përkatës, duke përfshirë 8, i cili duhet t'i kushtojë vëmendje ekzekutimit të fundit që duhet të jetë "break" ose "c.ebreak".
Tabela 7-11 Përkufizimi i regjistrit progbuf
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | progbuf | RW | Kodimi i udhëzimeve për operacionet e cache-it, i cili
mund të përfshijë udhëzime për kompresim |
0 |
Ndalo regjistrin e statusit (haltsum0)
Ky regjistër përdoret për të treguar nëse mikroprocesori është i pezulluar apo jo. Çdo bit tregon statusin e pezulluar të një mikroprocesori dhe kur ka vetëm një bërthamë, vetëm biti më i ulët i këtij regjistri përdoret për ta treguar atë.
Tabela 7-12 Përkufizimi i regjistrit haltsum0
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:1] | Rezervuar | RO | Rezervuar | 0 |
| 0 | haltsum0 | RO | 0: Mikroprocesori funksionon normalisht
1: Ndalimi i mikroprocesorit |
0 |
- Përveç regjistrave të lartpërmendur të modulit të korrigjimit, funksioni i korrigjimit përfshin gjithashtu disa regjistra CSR, kryesisht regjistrin e kontrollit dhe statusit të korrigjimit dcsr dhe treguesin e udhëzimeve të korrigjimit dpc, të cilat përshkruhen në detaje si më poshtë.
- Kontrolli i korrigjimit dhe regjistri i statusit (dcsr)
Tabela 7-13 Përkufizimi i regjistrit dcsr
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:28] | xdebugver | DRO | 0000: Korrigjimi i jashtëm nuk mbështetet 0100: Mbështet korrigjimin standard të jashtëm
1111: Korrigjimi i jashtëm mbështetet, por nuk përmbushet specifikimin |
0x4 |
| [27:16] | Rezervuar | DRO | Rezervuar | 0 |
| 15 | thyej | DRW | 0: Komanda e pushimit në modalitetin e makinës sillet siç përshkruhet në privilegj file
1: Komanda e ndërprerjes në modalitetin e makinës mund të hyjë në modalitetin e korrigjimit |
0 |
| [14:13] | Rezervuar | DRO | Rezervuar | 0 |
| 12 | ndarje |
DRW |
0: Komanda break në modalitetin e përdoruesit sillet siç përshkruhet në privilegj file
1: Komanda e pushimit në modalitetin e përdoruesit mund të hyjë në modalitetin e korrigjimit |
0 |
| 11 | hap | DRW | 0: Ndërprerjet çaktivizohen me korrigjimin me një hap
1: Aktivizo ndërprerjet në korrigjimin me një hap |
0 |
| 10 | Rezervuar | DRO | Rezervuar | 0 |
| 9 | koha e ndalimit | DRW | 0: Kohëmatësi i sistemit funksionon në modalitetin e korrigjimit
1: Kohëmatësi i sistemit ndalon në modalitetin e korrigjimit |
0 |
| [8:6] | shkaku | DRO | Arsyet për të hyrë në korrigjimin e gabimeve
001: Futja e korrigjimit në formën e komandës break (prioriteti 3) 010: Futja e korrigjimit në formën e një moduli të aktivizimit (prioriteti 4, më i larti) 011: Futja e korrigjimit në formën e kërkesës për pauzë (prioriteti 1) 100: korrigjimi në formën e korrigjimit me një hap (prioriteti 0, më i ulëti) |
0 |
| 101: hyni në modalitetin e korrigjimit direkt pas rivendosjes së mikroprocesorit (prioriteti 2) Të tjera: të rezervuara | ||||
| [5:3] | Rezervuar | DRO | Rezervuar | 0 |
| 2 | hap | DRW | 0: Çaktivizo korrigjimin me një hap
1: Aktivizo korrigjimin me një hap të vetëm |
0 |
| [1:0] | Prev | DRW | Modaliteti i privilegjit 00: Modaliteti i përdoruesit
01: Modaliteti mbikëqyrës (nuk mbështetet) 10: Rezervuar 11: Modaliteti i makinës Shënim: Regjistroni modalitetin e privilegjuar kur hyni në modalitetin e korrigjimit, korrigjuesi mund ta modifikojë këtë vlerë për të modifikuar modalitetin e privilegjuar kur del nga korrigjimi |
0 |
Treguesi i programit të modalitetit të korrigjimit (DPC)
- Ky regjistër përdoret për të ruajtur adresën e instruksionit të ardhshëm që do të ekzekutohet pasi mikroprocesori të hyjë në modalitetin e korrigjimit dhe vlera e tij përditësohet me rregulla të ndryshme në varësi të arsyes së hyrjes në debug. Regjistri dpc përshkruhet në detaje si më poshtë.
Tabela 7-14 Përkufizimet e regjistrit dpc
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | DPC | DRW | Adresa e udhëzimit | 0 |
Rregullat për përditësimin e regjistrave janë paraqitur në tabelën e mëposhtme.
Tabela 7-15 Rregullat e përditësimit të dpc
| Futni metodën e korrigjimit | dpc Rregullat e përditësimit |
| thyej | Adresa e udhëzimit Ebreak |
| hap i vetëm | Adresa e udhëzimit të udhëzimit të ardhshëm të udhëzimit aktual |
| moduli i këmbëzës | Nuk mbështetet përkohësisht |
| kërkesë për ndalim | Adresa e instruksionit të ardhshëm që do të ekzekutohet kur futni Debug |
Ndërfaqja e korrigjimit të gabimeve
- Ndryshe nga standardi JTAG ndërfaqja e përcaktuar nga RISC-V, mikroprocesori i serisë QingKe V3 miraton 1- një ndërfaqe të korrigjimit serik me tel/2 tela dhe ndjek protokollin e ndërfaqes së korrigjimit të WCH V1.0.
- Ndërfaqja e korrigjimit është përgjegjëse për komunikimin midis hostit të korrigjimit dhe modulit të korrigjimit dhe realizon funksionimin e leximit/shkrimit të hostit të korrigjimit në regjistrat e modulit të korrigjimit.
- WCH projektoi WCH_Link dhe kodin e saj të hapur skematikën dhe programin binar files, i cili mund të përdoret për korrigjimin e të gjithë mikroprocesorëve të arkitekturës RISC-V.
- Referojuni manualit të protokollit të korrigjimit të WCH për protokollet specifike të ndërfaqes së korrigjimit.
Lista e regjistrave të CSR
- Arkitektura RISC-V përcakton një numër të regjistrave të kontrollit dhe statusit (CSR) për kontrollin dhe regjistrimin e statusit të funksionimit të mikroprocesorit.
- Disa nga CSR-të janë prezantuar në seksionin e mëparshëm dhe ky kapitull do të detajojë regjistrat CSR të zbatuara në mikroprocesorët e serisë QingKe V3.
Lista e regjistrave të CSR
Tabela 8-1 Lista e regjistrave CSR të mikroprocesorëve
| Lloji | Emri | CSR Adresa | Qasja | Përshkrimi |
| RISC-V
CSR standarde |
marchid | 0xF12 | MRO | Regjistri i numrave të arkitekturës |
| i turbullt | 0xF13 | MRO | Regjistri i numërimit të zbatimit të harduerit | |
| mstatus | 0x300 | MRW | Regjistri i gjendjes | |
| misa | 0x301 | MRW | Regjistri i grupit të instruksioneve të harduerit | |
| mtvec | 0x305 | MRW | Regjistri i adresave bazë të përjashtimit | |
| gërvishtje | 0x340 | MRW | Modaliteti i makinës staging regjistri | |
| MEPC | 0x341 | MRW | Regjistri i treguesve të programit të përjashtimit | |
| sepse | 0x342 | MRW | Regjistri i shkaqeve të përjashtimit | |
| mtval | 0x343 | MRW | Regjistri i vlerave të përjashtimit | |
| pmpcfg | 0x3A0+i | MRW | Regjistri i konfigurimit PMP | |
| pmpaddr | 0x3B0+i | MRW | Regjistri i adresave PMP | |
| zgjidhni | 0x7A0 | MRW | Korrigjimi i regjistrit të përzgjedhjes së aktivizuesit | |
| tdata1 | 0x7A1 | MRW | Korrigjimi i regjistrit të të dhënave të aktivizimit 1 | |
| tdata2 | 0x7A2 | MRW | Korrigjimi i regjistrit të të dhënave të aktivizimit 2 | |
| dcsr | 0x7B0 | DRW | Kontrolli i korrigjimit dhe regjistrat e statusit | |
| dpc | 0x7B1 | DRW | Regjistri i treguesit të programit të modalitetit të korrigjimit | |
| dscratch0 | 0x7B2 | DRW | Modaliteti i korrigjimit stagRegjistrimi 0 | |
| dscratch1 | 0x7B3 | DRW | Modaliteti i korrigjimit stagRegjistrimi 1 | |
|
CSR e përcaktuar nga shitësi |
xhinter | 0x800 | URW | Regjistri i aktivizimit të ndërprerjes globale |
| intsyscr | 0x804 | URW | Ndërprerja e regjistrit të kontrollit të sistemit | |
| corecfgr | 0xBC0 | MRW | Regjistri i konfigurimit të mikroprocesorit | |
| inestcr | 0xBC1 | MRW | Ndërprerja e regjistrit të kontrollit të mbivendosur |
RISC-V Regjistrat Standard CSR
- Regjistri i numrave të arkitekturës (marchid)
- Ky regjistër është një regjistër vetëm për lexim për të treguar numrin aktual të arkitekturës së harduerit të mikroprocesorit, i cili përbëhet kryesisht nga kodi i shitësit, kodi i arkitekturës, kodi i serisë dhe kodi i versionit. Secila prej tyre përcaktohet si më poshtë.
Tabela 8-2 Përkufizimi i regjistrit marchid
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| 31 | Rezervuar | MRO | Rezervuar | 1 |
| [30:26] | Shitës0 | MRO | Kodi i prodhuesit 0
Fiksuar në kodin e shkronjës "W". |
0x17 |
| [25:21] | Shitës1 | MRO | Kodi i prodhuesit 1
Fiksuar në kodin e shkronjës "C". |
0x03 |
| [20:16] | Shitës2 | MRO | Kodi i prodhuesit 2
Fiksuar në kodin e shkronjës "H". |
0x08 |
| 15 | Rezervuar | MRO | Rezervuar | 1 |
| [14:10] | Arch | MRO | Kodi i arkitekturës | 0x16 |
| Arkitektura RISC-V është fiksuar në kodin e shkronjës "V". | ||||
| [9:5] | Seriali | MRO | Kodi i serisë
Seria QingKe V3, e fiksuar në numrin "3" |
0x03 |
| [4:0] | Versioni | MRO | Kodi i versionit
Mund të jetë versioni "A", "B", "C" dhe shkronja të tjera të kodit |
x |
Numri i prodhuesit dhe numri i versionit janë alfabetik, dhe numri i serisë është numerik. Tabela e kodimit të shkronjave është paraqitur në tabelën e mëposhtme.
Tabela 8-3 Tabela e hartës alfabetike
| 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 |
- Midis tyre, mikroprocesori QingKe V3A, regjistri lexon përsëri në 0.
Regjistri i numërimit të zbatimit të harduerit (i qartë)
- Ky regjistër përbëhet kryesisht nga kodet e shitësve, secili prej të cilëve është i përcaktuar si më poshtë.
Tabela 8-4 Përkufizimi i regjistrit të qartë
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| 31 | Rezervuar | MRO | Rezervuar | 1 |
| [30:26] | Shitës0 | MRO | Kodi i prodhuesit 0
Fiksuar në kodin e shkronjës "W". |
0x17 |
| [25:21] | Shitës1 | MRO | Kodi i prodhuesit 1
Fiksuar në kodin e shkronjës "C". |
0x03 |
| [20:16] | Shitës2 | MRO | Kodi i prodhuesit 2
Fiksuar në kodin e shkronjës "H". |
0x08 |
| 15 | Rezervuar | MRO | Rezervuar | 1 |
| [14:8] | Rezervuar | MRO | Rezervuar | 0 |
| [7:4] | Të mitur | MRO | Numri i përmbysjes | 0xX |
| [3:0] | Major | MR0 | Numri i versionit kryesor | 0xX |
- Ky regjistër është i lexueshëm në çdo zbatim të makinës dhe në procesorin e serisë QingKe V3A, ky regjistër lexohet përsëri në zero.
Regjistri i statusit të modalitetit të makinës (mstatus)
- Ky regjistër është përshkruar pjesërisht në seksionin e mëparshëm, dhe njerëzit e tij janë pozicionuar si më poshtë.
Tabela 8-5 Përkufizimi i regjistrit mstatus
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:13] | Rezervuar | MRO | Rezervuar | 0 |
| [12:11] | MPP | MRW | Modaliteti i privilegjuar përpara se të hyni në pushim | 0 |
| [10:8] | Rezervuar | MRO | Rezervuar | 0 |
| 7 | MPIE | MRW | Gjendja e aktivizimit të ndërprerjes përpara se të futni një ndërprerje | 0 |
| [6:4] | Rezervuar | MRO | Rezervuar | 0 |
| 3 | MIE | MRW | Aktivizo ndërprerjen e modalitetit të makinës | 0 |
| [2:0] | Rezervuar | MRO | Rezervuar | 0 |
- Fusha MPP përdoret për të ruajtur modalitetin e privilegjuar përpara se të futni përjashtimin ose ndërprerjen dhe përdoret për të rivendosur modalitetin e privilegjuar pas daljes nga përjashtimi ose ndërprerja. MIE është biti i aktivizimit të ndërprerjes globale dhe kur futet përjashtimi ose ndërprerja, vlera e MPIE përditësohet në vlerën e MIE, dhe duhet të theksohet se në mikroprocesorët e serisë QingKe V3, MIE nuk do të përditësohet në 0 përpara niveli i fundit i ndërprerjeve të ndërlidhura për të siguruar që foleja e ndërprerjeve në modalitetin Machine vazhdon të ekzekutohet. Kur një përjashtim ose ndërprerje del, mikroprocesori kthehet në modalitetin Machine të ruajtur nga MPP dhe MIE rikthehet në vlerën MPIE.
- Mikroprocesori QingKe V3 mbështet modalitetin e makinës dhe modalitetin e përdoruesit, nëse duhet ta bëni mikroprocesorin të funksionojë vetëm në modalitetin Machine, mund ta vendosni MPP në 0x3 në fillimin e nisjes file, domethënë pas kthimit do të mbetet gjithmonë në modalitetin Machine.
Regjistri i grupit të instruksioneve të harduerit (misa)
- Ky regjistër përdoret për të treguar arkitekturën e mikroprocesorit dhe shtesat e grupit të instruksioneve të mbështetura, secila prej të cilave përshkruhet si më poshtë.
Tabela 8-6 Përkufizimi i regjistrit misa
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:30] | MXL | MRO | Gjatësia e fjalës së makinës 1:32
2:64 3:128 |
1 |
| [29:26] | Rezervuar | MRO | Rezervuar | 0 |
| [25:0] | Shtesat | MRO | Shtesat e grupit të udhëzimeve | x |
- MXL përdoret për të treguar gjatësinë e fjalës së mikroprocesorit, QingKe V3 janë mikroprocesorë 32-bitësh dhe domeni është fiksuar në 1.
- Zgjerimet përdoren për të treguar se mikroprocesori mbështet detajet e grupit të instruksioneve të zgjeruara, secila tregon një klasë zgjerimesh, përshkrimi i detajuar i tij tregohet në tabelën e mëposhtme.
Tabela 8-7 Detajet e zgjerimit të grupit të udhëzimeve
| Bit | Emri | Përshkrimi |
| 0 | A | Zgjerimi atomik |
| 1 | B | Rezervuar paraprakisht për zgjerimin e Manipulimit të Biteve |
| 2 | C | Zgjerim i ngjeshur |
| 3 | D | Zgjatje me pikë lundruese me saktësi të dyfishtë |
| 4 | E | ISA bazë RV32E |
| 5 | F | Zgjatje me një pikë lundruese me saktësi të vetme |
| 6 | G | Ekzistojnë zgjerime standarde shtesë |
| 7 | H | Zgjatja e hipervizorit |
| 8 | I | ISA bazë RV32I/64I/128I |
| 9 | J | Rezervuar paraprakisht për shtesën "Gjuhët e përkthyera dinamike". |
| 10 | K | Rezervuar |
| 11 | L | Rezervuar paraprakisht për zgjerimin me pikë lundruese dhjetore |
| 12 | M | Zgjatja e shumëzimit/pjestimit të numrave të plotë |
| 13 | N | Mbështeten ndërprerjet e nivelit të përdoruesit |
| 14 | O | Rezervuar |
| 15 | P | Rezervuar paraprakisht për shtesën Packed-SIMD |
| 16 | Q | Zgjatje me pikë lundruese me precizion katërkëndor |
| 17 | R | Rezervuar |
| 18 | S | U zbatua mënyra e mbikëqyrësit |
| 19 | T | Rezervuar paraprakisht për zgjerimin e kujtesës transaksionale |
| 20 | U | Modaliteti i përdoruesit u zbatua |
| 21 | V | Rezervuar paraprakisht për zgjerimin Vector |
| 22 | W | Rezervuar |
| 23 | X | Shtesat jo standarde janë të pranishme |
| 24 | Y | Rezervuar |
| 25 | Z | Rezervuar |
- Për shembullampLe, për mikroprocesorin QingKe V3A, vlera e regjistrit është 0x401001105, që do të thotë se arkitektura e mbështetur e grupit të instruksioneve është RV32IMAC dhe ka implementim të modalitetit të përdoruesit.
Regjistri bazë i adresave të përjashtimit të modalitetit të makinës (mtvec)
- Ky regjistër përdoret për të ruajtur adresën bazë të mbajtësit të përjashtimit ose ndërprerjeve dhe dy bitët e poshtëm përdoren për të konfiguruar mënyrën dhe metodën e identifikimit të tabelës vektoriale siç përshkruhet në seksionin 3.2.
Modaliteti i makinës stagregjistrimi i regjistrimit (mscratch)
Tabela 8-8 përkufizimet e regjistrit mscratch
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | gërvishtje | MRW | Ruajtja e të dhënave | 0 |
Ky regjistër është një regjistër 32-bit i lexueshëm dhe i shkruhet në modalitetin e makinës për ruajtjen e përkohshme të të dhënave. Për shembullampLe, kur futni një mbajtës përjashtimi ose ndërprerjeje, treguesi i stivës së përdoruesit SP ruhet në këtë regjistër dhe treguesi i stivës së ndërprerjes i caktohet regjistrit SP. Pas daljes nga përjashtimi ose ndërprerja, rivendosni vlerën e treguesit të stivës së përdoruesit SP nga e para. Kjo do të thotë, grupi i ndërprerjeve dhe grupi i përdoruesit mund të izolohen.
Regjistri i treguesit të programit të përjashtimit të modalitetit të makinës (hartë)
Tabela 8-9 Përkufizimet e regjistrit mepc
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | mepc | MRW | Treguesi i procedurës së përjashtimit | 0 |
- Ky regjistër përdoret për të ruajtur treguesin e programit kur futni një përjashtim ose ndërprerje.
- Përdoret për të ruajtur treguesin e PC të udhëzimit përpara se të futet një përjashtim kur krijohet një përjashtim ose ndërprerje, dhe mepc përdoret si adresa e kthimit kur përjashtimi ose ndërprerja trajtohet dhe përdoret për një kthim përjashtimi ose ndërprerjeje.
- Megjithatë, është e rëndësishme të theksohet se.
- Kur ndodh një përjashtim, mepc përditësohet në vlerën e PC të instruksionit që gjeneron aktualisht përjashtimin.
- Kur ndodh një ndërprerje, mepc përditësohet në vlerën e PC të instruksionit të ardhshëm.
- Kur duhet të ktheni një përjashtim pas përpunimit të përjashtimit, duhet t'i kushtoni vëmendje modifikimit të vlerës së mepc, dhe më shumë detaje mund të gjenden në Kapitullin 2 Përjashtimet.
Regjistri i shkaqeve të përjashtimit të modalitetit të makinës (mcause)
Tabela 8-10 përkufizimi i regjistrit mcause
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| 31 | Ndërprisni | MRW | Fusha e treguesit të ndërprerjes 0: Përjashtim
1: Ndërprerje |
0 |
| [30:0] | Kodi i përjashtimit | MRW | Për kodet e përjashtimit, shihni Tabelën 2-1 për detaje | 0 |
- Ky regjistër përdoret kryesisht për të ruajtur shkakun e përjashtimit ose numrin e ndërprerjes së ndërprerjes. Biti më i lartë i tij është fusha Ndërprerje, e cila përdoret për të treguar nëse ndodhja aktuale është një përjashtim apo një ndërprerje.
- Biti i poshtëm është kodi i përjashtimit, i cili përdoret për të treguar shkakun specifik. Detajet e tij mund të gjenden në Kapitullin 2 Përjashtimet.
Regjistri i vlerave të përjashtimit të modalitetit të makinës (mtval)
Tabela 8-11 përcaktimi i regjistrit mtval
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | mtval | MRW | Vlera përjashtimore | 0 |
- Ky regjistër përdoret për të mbajtur vlerën që shkaktoi përjashtimin kur ndodh një përjashtim. Për detaje të tilla si vlera dhe koha e ruajtjes së tij, ju lutemi referojuni Kapitullit 2 Përjashtimet.
Regjistri i konfigurimit PMP (pmpcfg
- Ky regjistër përdoret kryesisht për të konfiguruar njësinë e mbrojtjes fizike të memories dhe çdo 8 bit i këtij regjistri përdoren për të konfiguruar mbrojtjen e një zone. Ju lutemi referojuni Kapitullit 4 për përkufizimin e detajuar.
Regjistri i adresave PMP (pmpaddr
- Ky regjistër përdoret kryesisht për konfigurimin e adresave të njësisë së mbrojtjes fizike të memories, e cila kodon 32 bitet e sipërme të një adrese fizike 34-bit. Ju lutemi referojuni Kapitullit 4 për metodën specifike të konfigurimit.
Regjistri i treguesit të programit të modalitetit të korrigjimit (DPC)
- Ky regjistër përdoret për të ruajtur adresën e instruksionit të ardhshëm që do të ekzekutohet pasi të hyjë mikroprocesori
- Modaliteti i korrigjimit dhe vlera e tij përditësohen me rregulla të ndryshme në varësi të arsyes së hyrjes në korrigjim. Referojuni seksionit 6.1 për një përshkrim të hollësishëm.
Regjistri i zgjedhjes së aktivizimit të korrigjimit të gabimeve (zgjidh)
- Ai është i vlefshëm vetëm për mikroprocesorët që mbështesin pikat e ndërprerjes së harduerit dhe mbështesin maksimumi pikat e ndërprerjes me 4 kanale, dhe 2 bitet e tij më të ulët janë të vlefshëm.
- Kur konfiguroni çdo pikë ndërprerjeje kanali, duhet të zgjidhni kanalin përkatës përmes këtij regjistri përpara konfigurimit.
Tabela 8-12 zgjidhni përkufizimin e regjistrit
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:2] | Rezervuar | MRO | Rezervuar | 0 |
| [1:0] |
ZGJIDH |
MRW |
Regjistri i përzgjedhjes së kanalit të pikës së ndërprerjes është konfiguruar, domethënë, pasi të zgjidhet kanali përkatës, regjistrat tdata1 dhe tdata2 mund të operohen për të konfiguruar një pikë ndërprerjeje.
informacion. |
X |
Korrigjimi i regjistrit të të dhënave të aktivizimit 1 (tdata1)
Është i vlefshëm vetëm për mikroprocesorët që mbështesin pikat e ndërprerjes së harduerit. Mikroprocesorët mbështesin vetëm pikat e ndërprerjes së adresës së instruksionit dhe adresës së të dhënave, ku biti TYPE i regjistrit tdata1 është një vlerë fikse prej 2, dhe bitët e tjerë janë në përputhje me përkufizimin e kontrollit në standardin e korrigjimit.
Tabela 8-13 Përkufizimi i regjistrit tdata1
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:28] | LLOJI | MRO | Përcaktimi i llojit të pikës së ndërprerjes, lloji i kontrollit. | 0x2 |
|
27 |
DMODE |
MRO |
0: Regjistrat përkatës të flip-flopit mund të modifikohen si në modalitetin e makinës ashtu edhe në modalitetin e korrigjimit;
1: Vetëm modaliteti i korrigjimit mund të modifikojë regjistrat përkatës të flip-flopit. |
1 |
| [26:21] |
MASKMAX |
MRO |
Kur MATCH=1, diapazoni maksimal i fuqisë eksponenciale të përputhjes lejohet, domethënë, diapazoni maksimal i lejueshëm i përputhjes është 231 bajt. |
0x1F |
| [20:13] | Rezervuar | MRO | Rezervuar | 0 |
|
12 |
VEPRIM |
MRW |
Vendosni mënyrën e përpunimit kur aktivizoni një pikë ndërprerjeje:
0: Kur aktivizoni, futni pikën e ndërprerjes dhe thirrni përsëri ndërprerjen; 1: Hyni në modalitetin e korrigjimit kur aktivizohet. |
0 |
| [11:8] | Rezervuar | MRO | Rezervuar | 0 |
|
7 |
NDESHJE |
MRW |
Përputhja e konfigurimit të politikës:
0: Përputhni kur vlera e këmbëzës është e barabartë me TDATA2; 1: Vlera e këmbëzës përputhet me bitin m të lartë të TDATA2, ku m = 31–n, dhe n është citati i parë 0 i TDATA2 (duke filluar nga biti i ulët). |
0 |
|
6 |
M |
MRW |
Aktivizo flip-flop në modalitetin M:
0: Çaktivizoni këmbëzën në modalitetin M; 1: Aktivizo këmbëzën në modalitetin M. |
0 |
| [5:4] | Rezervuar | MRO | Rezervuar | 0 |
|
3 |
U |
MRW |
Aktivizo aktivizimin në modalitetin U:
0: Çaktivizoni këmbëzën në modalitetin U; 1: Aktivizo këmbëzën në modalitetin U. |
0 |
|
2 |
EKZEKUTOHET |
MRW |
Aktivizimi i aktivizimit të adresës së leximit të udhëzimeve: 0: Çaktivizo;
1: Aktivizo. |
0 |
|
1 |
DYQANI |
MRW |
Aktivizimi i aktivizimit të adresës së shkrimit të të dhënave: 0: Çaktivizo;
1: Aktivizo. |
0 |
|
0 |
NGARKOJE |
MRW |
Aktivizimi i aktivizimit të adresës së leximit të të dhënave: 0: Çaktivizo;
1: Aktivizo. |
0 |
Korrigjimi i regjistrit të të dhënave të aktivizimit 2 (tdata2)
Ai është i vlefshëm vetëm për mikroprocesorët që mbështesin pikat e ndërprerjes së harduerit dhe përdoret për të ruajtur vlerën e përputhjes së këmbëzës.
Tabela 8-14 Përkufizimi i regjistrit tdata2
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | TDATA2 | MRW | Përdoret për të ruajtur vlerat që përputhen. | X |
Kontrolli i korrigjimit dhe regjistri i statusit (dcsr)
Ky regjistër përdoret për të kontrolluar dhe regjistruar gjendjen e funksionimit të modalitetit të korrigjimit. Referojuni seksionit 7.1 për detaje.
Treguesi i programit të modalitetit të korrigjimit (DPC)
Ky regjistër përdoret për të ruajtur adresën e instruksionit të ardhshëm që do të ekzekutohet pasi mikroprocesori të hyjë në modalitetin e korrigjimit, vlera e tij është e ndryshme sipas arsyeve të hyrjes në modalitetin e korrigjimit dhe rregullat e përditësimit janë gjithashtu të ndryshme. Referojuni seksionit 7.1 për një përshkrim të hollësishëm.
Modaliteti i korrigjimit stagregjistri i regjistrimit (dscratch0-1)
Ky grup regjistrash përdoret për ruajtjen e përkohshme të të dhënave në modalitetin Debug.
Tabela 8-15 dscratch0-1 përkufizimet e regjistrit
| Bit | Emri | Qasja | Përshkrimi | Rivendos vlerën |
| [31:0] | gërvishtje | DRW | Të dhënat e modalitetit të korrigjimit stagvlera | 0 |
Regjistri CSR i përcaktuar nga përdoruesi
Regjistri i aktivizimit të ndërprerjes globale të modalitetit të përdoruesit (gintenr)
- Ky regjistër përdoret për të kontrolluar aktivizimin dhe maskimin e ndërprerjes globale. Aktivizimi dhe maska e ndërprerjes globale në modalitetin e makinës mund të kontrollohen nga bitet MIE dhe MPIE në status, por ky regjistër nuk mund të përdoret në modalitetin e përdoruesit.
- Ndërsa ndërprerja globale mundëson regjistrin gintenr është hartëzimi i MIE dhe MPIE në status.
- Në modalitetin e përdoruesit, qëllimi mund të përdoret për të vendosur dhe pastruar MIE dhe MPIE, siç përshkruhet në seksionin 3.2 për detaje.
Shënim
- Ndërprerjet globale nuk përfshijnë ndërprerjet e pamaskuara NMI dhe përjashtimet.
Regjistri i kontrollit të sistemit të ndërprerjes (intsyscr)
Ky regjistër përdoret kryesisht për të konfiguruar thellësinë e foleve të ndërprerjes, shtypjen e stivës së harduerit dhe funksione të tjera të lidhura, siç përshkruhet në seksionin 3.2 për detaje.
Regjistri i konfigurimit të mikroprocesorit (corecfgr)
Ky regjistër përdoret për të kontrolluar nëse ndërprerja NMI lejohet pas tejmbushjes së ndërprerjes dhe nëse kërkesa për ndërprerje pastrohet kur ekzekutohet instruksioni i gardhit. Ju lutemi referojuni seksionit 3.2 për përkufizimin specifik.
Ndërprerja e regjistrit të kontrollit të mbivendosur (inestcr)
Ky regjistër përdoret për të treguar gjendjen e folezimit të ndërprerjes dhe nëse ai derdhet apo jo, dhe për të kontrolluar nivelin maksimal të foleve. Ju lutemi referojuni seksionit 3.2 për përkufizimin specifik.
Dokumentet / Burimet
![]() |
Mikroprocesori WH V3 [pdf] Manuali i Përdoruesit V3 Mikroprocesor, V3, Mikroprocesor |





