WH V3 Microprocessor

Mga pagtutukoy
- Modelo ng Microprocessor: QingKeV3
- Bersyon: V1.2
- Mga Tampok ng ISA:
- Pipeline FPU
- Hula ng sangay
- Makagambala sa suporta
- HPE Physical Memory Protection (PMP)
- Mababang-power consumption mode
- Extended Instruction Set Debug
Mga Tagubilin sa Paggamit ng Produkto
Tapos naview ng QingKe V3 Microprocessor
Kasama sa mga microprocessor ng serye ng QingKe V3 ang mga modelong V3A, V3B, at V3C. Ang bawat modelo ay may mga partikular na tampok at pagkakaiba batay sa aplikasyon nito.
Set ng Pagtuturo
Kasama sa set ng pagtuturo ng RV32I ang 32 set ng rehistro mula x0 hanggang x31. Hindi sinusuportahan ng serye ng V3 ang floating-point extension (F). Ang bawat rehistro ay 32 bits ang laki.
Itakda ang Register
Ang set ng rehistro ng RV32I ay binubuo ng mga sumusunod na rehistro.
- x0: Naka-hardcode 0
- x1: Ibalik ang address
- x2: Stack pointer
- x3: Pandaigdigang pointer
- x4: Thread pointer
- x5-x7: Mga pansamantalang rehistro
- x8: I-save ang register/frame pointer
- x9: I-save ang mga parameter ng pagpaparehistro/function/pagbabalik ng mga halaga
- x10-x11: Mga parameter ng pagpapaandar
- x12-x17: I-save ang mga rehistro
- x18-x27: Mga pansamantalang rehistro
- x28-x31: Nagrerehistro ang tumatawag/Callee
Privilege Mode
Kasama sa karaniwang arkitektura ng RISC-V ang tatlong privileged mode: Machine mode, Supervisor mode, at User mode. Sinusuportahan ng QingKe V3 series microprocessors ang Machine mode at Supervisor mode.
Mga Madalas Itanong
Q: Ano ang iba't ibang mga modelo sa QingKe V3 series microprocessors?
A: Kasama sa seryeng QingKe V3 ang mga modelong V3A, V3B, at V3C, bawat isa ay may mga partikular na feature at pagkakaiba na nakadetalye sa manwal ng gumagamit.
T: Ilang set ng rehistro ang available sa set ng pagtuturo ng RV32I?
A: Ang set ng pagtuturo ng RV32I ay nagbibigay ng 32 set ng rehistro mula x0 hanggang x31.
Q: Aling mga privileged mode ang sinusuportahan ng QingKe V3 microprocessor?
A: Sinusuportahan ng QingKe V3 series microprocessors ang Machine mode at Supervisor mode bilang bahagi ng RISC-V architecture.
Tapos naview
Ang QingKe V3 series microprocessors ay self-developed 32-bit general-purpose MCU microprocessors batay sa karaniwang RISC-V instruction set architecture. Kasama sa seryeng ito ang V3A, V3B at V3C, kung saan sinusuportahan ng V3A ang RV32IMAC standard instruction set extension at V3B/C ay sumusuporta sa RV32IMCB standard instruction set extension at customized na instruction set extension na XW. Parehong sinusuportahan ng mga ito ang single-cycle multiplication at hardware division, bilang karagdagan sa hardware pressure stack (HPE), table-free interrupt (VTF), naka-streamline na 1- at 2-wire na debugging interface, "WFE" na mga tagubilin, at iba pang espesyal na feature. Bilang karagdagan, sinusuportahan din nito ang Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), naka-streamline na 1-/2-wire debugging interface, at suporta para sa pagtuturo ng "WFE".
Mga tampok
| Mga tampok | Paglalarawan |
| ISA | RV32IM[A]C[B] |
| Pipeline | 3 |
| FPU | Hindi suportado |
| Hula ng sangay | Static na hula sa sangay |
| Makagambala | Suportahan ang kabuuang 256 na interrupt kabilang ang mga exception, at sinusuportahan ang VTF |
| HPE | Suportahan ang 2 antas ng HPE |
| Proteksyon ng Pisikal na Memorya (PMP) | Sinusuportahan |
| Mababang-power consumption mode | Suportahan ang Sleep at Deep sleep mode, at suportahan ang WFI at WFE sleep method |
| Extended Instruction Set | Sinusuportahan |
| I-debug | 1/2-wire SDI, karaniwang RISC-V debug |
Tapos naview
Kasama sa mga microprocessor ng serye ng QingKe V3 ang V3A, V3B, at V3C, mayroong ilang mga pagkakaiba sa pagitan ng serye ayon sa aplikasyon, ang mga partikular na pagkakaiba ay nakadetalye sa Talahanayan 1-1.
Talahanayan 1-1 Lampasview ng QingKe V3 microprocessor
| Tampok Modelo | ISA | HPE bilang ng mga antas | Mga pagkagambala pugad bilang ng mga antas | VTF bilang ng mga channel | Pipeline | Vector table mode | Pinalawak na Instruksyon (XW) | Bilang ng mga lugar ng proteksyon ng memorya |
| V3A | RV32IMAC | 2 | 2 | 4 | 3 | Pagtuturo | × | × |
| V3B | RV32IMCB | 2 | 2 | 4 | 3 | Address/ Instruksyon | √ | × |
| V3C | RV32IMCB | 2 | 2 | 4 | 3 | Address/ Instruksyon | √ | 4 |
Tandaan: Ang paglipat ng gawain sa OS ay karaniwang gumagamit ng stack push, na hindi limitado sa bilang ng mga antas
Set ng Pagtuturo
- Ang mga microprocessor ng serye ng QingKe V3 ay sumusunod sa karaniwang RISC-V Instruction Set Architecture (ISA). Ang detalyadong dokumentasyon ng pamantayan ay makikita sa “The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 2.2” sa RISC-V International website. Ang set ng pagtuturo ng RISC-V ay may simpleng arkitektura at sumusuporta sa isang modular na disenyo, na nagbibigay-daan para sa mga flexible na kumbinasyon batay sa iba't ibang pangangailangan, at sinusuportahan ng serye ng V3 ang mga sumusunod na extension ng set ng pagtuturo.
- RV32: 32-bit na arkitektura, pangkalahatang layunin na rehistro ng bit na lapad ng 32 bits
- I: Suportahan ang pagpapatakbo ng paghubog, na may 32 mga rehistro ng paghubog
- M: Suportahan ang paghubog ng mga tagubilin sa pagpaparami at paghahati
- A: Suportahan ang mga utos ng atom
- C: Suportahan ang 16-bit na pagtuturo ng compression
- B: Suporta para sa mga tagubilin sa pagmamanipula ng bit
- XW: 16-bit na mga tagubilin sa compression para sa self-extending byte at half-word na mga operasyon
Tandaan:
- Maaaring iba ang subset ng mga tagubiling sinusuportahan ng iba't ibang modelo, mangyaring sumangguni sa Talahanayan 1-1 para sa mga detalye;
- Upang higit pang mapahusay ang density ng code, pahabain ang XW subset, idagdag ang sumusunod na mga tagubilin sa compression c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , ang paggamit nito ay kailangang nakabatay sa MRS compiler o sa toolchain na ibinibigay nito;
- Sinusuportahan ng V3B ang pagkuha ng isang salita (32bit) na pagtuturo mula sa isang doubleword (64bit) at pagkuha ng isang salita (32bit) na pagtuturo mula sa isang resulta ng pagpaparami (64bit). Ang partikular na paraan ng paggamit ay maaaring sumangguni sa function ng library at makipagtulungan sa MRS compiler o sa toolchain na ibinigay nito;
- Sinusuportahan ng V3B/C ang pagtuturo ng memory copy. Para sa partikular na paggamit, mangyaring sumangguni sa function ng library at makipagtulungan sa MRS compiler o sa toolchain nito.
Itakda ang Register
Ang RV32I ay may 32 register set mula sa x0-x31. Hindi sinusuportahan ng serye ng V3 ang extension na "F", ibig sabihin, walang floating-point register set. Sa RV32, ang bawat rehistro ay 32 bits. Ang talahanayan 1-2 sa ibaba ay naglilista ng mga rehistro ng RV32I at ang kanilang mga paglalarawan.
Talahanayan 1-2 Mga rehistro ng RISC-V
| Magrehistro | Pangalan ng ABI | Paglalarawan | Storer |
| x0 | sero | Naka-hardcode 0 | – |
| x1 | ra | Ibalik ang address | tumatawag |
| x2 | sp | Stack pointer | Callee |
| x3 | GP | Pandaigdigang pointer | – |
| x4 | tp | Thread pointer | – |
| x5-7 | t0-2 | Pansamantalang rehistro | tumatawag |
| x8 | s0/fp | I-save ang register/frame pointer | Callee |
| x9 | s1 | I-save ang rehistro | Callee |
| x10-11 | a0-1 | Mga parameter ng function/mga halaga ng pagbabalik | tumatawag |
| x12-17 | a2-7 | Mga parameter ng pagpapaandar | tumatawag |
| x18-27 | a2-11 | I-save ang rehistro | Callee |
| X28-31 | t3-6 | Pansamantalang rehistro | tumatawag |
Ang katangian ng Caller sa talahanayan sa itaas ay nangangahulugan na ang tinatawag na pamamaraan ay hindi nagse-save ng halaga ng rehistro, at ang katangian ng Callee ay nangangahulugan na ang tinatawag na pamamaraan ay nagse-save sa rehistro.
Privilege Mode
- Kasama sa karaniwang arkitektura ng RISC-V ang tatlong privileged mode: Machine mode, Supervisor mode, at User mode, tulad ng ipinapakita sa Table 1-3 sa ibaba.
- Ang machine mode ay sapilitan, at ang iba pang mga mode ay opsyonal. Para sa mga detalye, maaari kang sumangguni sa The RISC-V Instruction Set Manual Volume II: Privileged Architecture", na maaaring i-download nang libre mula sa RISC-V International website.
Talahanayan 1-3 Privilege mode ng arkitektura ng RISC-V
| Code | Pangalan | Mga pagdadaglat |
| 0b00 | Mode ng Gumagamit | U |
| 0b01 | Modelo ng Superbisor | S |
| 0b10 | Nakareserba | Nakareserba |
| 0b11 | Machine mode | M |
- Sinusuportahan ng mga microprocessor ng serye ng QingKe V3 ang dalawa sa mga privileged mode na ito.
Machine mode
- Machine mode ay may pinakamataas na awtoridad, ang programa sa mode na ito ay maaaring ma-access ang lahat ng Control at Status Register (CSR), ngunit maaari ring ma-access ang lahat ng mga pisikal na lugar ng address.
- Nasa machine mode ang power-up default, kapag bumalik ang execution ng mret (Machine mode return instruction), ayon sa CSR register status (Machine mode status register) sa MPP bit, kung MPP = 0b00, pagkatapos ay lumabas sa Machine mode sa User mode, MPP = 0b11, pagkatapos ay patuloy na panatilihin ang Machine mode.
User mode
- Ang user mode ay may pinakamababang pribilehiyo, at limitadong CSR register lang ang maa-access sa mode na ito. Kapag may naganap na exception o interrupt, ang microprocessor ay napupunta mula sa User mode papunta sa Machine mode para pangasiwaan ang mga exception at interrupts.
CSR Register
Ang isang serye ng mga rehistro ng CSR ay tinukoy sa arkitektura ng RISC-V upang kontrolin at itala ang estado ng pagpapatakbo ng microprocessor. Ang mga CSR na ito ay maaaring palawigin ng 4096 na mga rehistro gamit ang isang panloob na nakalaang 12-bit address coding space. At gamitin ang mataas na dalawang CSR[11:10] para tukuyin ang read/write na pahintulot ng register na ito, 0b00, 0b01, 0b10 para sa read/write na pinapayagan at 0b11 para sa read-only. Gamitin ang dalawang bit na CSR[9:8] upang tukuyin ang pinakamababang antas ng pribilehiyo na maaaring ma-access ang rehistrong ito, at ang halaga ay tumutugma sa privilege mode na tinukoy sa Talahanayan 1-3. Ang mga rehistro ng CSR na ipinatupad sa QingKe V3 microprocessor ay detalyado sa Kabanata 8.
Exception
Mekanismo ng pagbubukod, na isang mekanismo upang harangin at pangasiwaan ang "hindi pangkaraniwang mga kaganapan sa operasyon". Ang QingKe V3 series microprocessors ay nilagyan ng exception response system na kayang humawak ng hanggang 256 exception, kabilang ang mga interrupt. Kapag may nangyaring exception o interruption, ang microprocessor ay maaaring mabilis na tumugon at mahawakan ang exception at interruption event.
Mga Uri ng Exception
Ang pag-uugali ng hardware ng microprocessor ay pareho kung ang isang pagbubukod o isang pagkagambala ay nangyayari. Isususpinde ng microprocessor ang kasalukuyang program, lilipat sa exception o interrupt handler, at babalik sa dating nasuspinde na program kapag kumpleto na ang pagproseso. Sa pangkalahatan, ang mga pagkagambala ay bahagi din ng mga pagbubukod. Kung eksaktong ang kasalukuyang pangyayari ay isang interrupt o isang exception ay maaaring viewed sa pamamagitan ng Machine mode exception cause register cause. Ang mcause[31] ay ang interrupt field, na ginagamit upang ipahiwatig kung ang sanhi ng exception ay isang interrupt o exception. Ang ibig sabihin ng mcause[31]=1 ay interrupt, ang mcause[31]=0 ay nangangahulugang exception. Ang mcause[30:0] ay ang exception code, na ginagamit upang ipahiwatig ang partikular na dahilan ng exception o ang interrupt na numero, tulad ng ipinapakita sa sumusunod na talahanayan.
Talahanayan 2-1 V3 microprocessor exception code
| Makagambala | Exception mga code | Kasabay / Asynchronous | Dahilan para sa pagbubukod |
| 1 | 0-1 | – | Nakareserba |
| 1 | 2 | Tumpak na asynchronous | Nagambala ang NMI |
| 1 | 3-11 | – | Nakareserba |
| 1 | 12 | Tumpak na asynchronous | Huminto ang SysTick |
| 1 | 13 | – | Nakareserba |
| 1 | 14 | Kasabay | Naantala ang software |
| 1 | 15 | – | Nakareserba |
| 1 | 16-255 | Tumpak na asynchronous | Panlabas na interrupt 16-255 |
| 0 | 0 | Kasabay | Maling pagkakahanay sa address ng tagubilin |
| 0 | 1 | Kasabay | Fetch command access error |
| 0 | 2 | Kasabay | Mga iligal na tagubilin |
| 0 | 3 | Kasabay | Mga breakcode |
| 0 | 4 | Kasabay | I-load ang instruction access address misalignment |
| 0 | 5 | Hindi katumpakan asynchronous | Error sa pag-load ng command access |
| 0 | 6 | Kasabay | Maling pagkakahanay sa address ng pag-access sa pagtuturo ng tindahan/AMO |
| 0 | 7 | Hindi katumpakan asynchronous | Error sa pag-access ng command sa tindahan/AMO |
| 0 | 8 | Kasabay | Environment call sa User mode |
| 0 | 11 | Kasabay | Environment call sa Machine mode |
- Synchronous” sa talahanayan ay nangangahulugan na ang isang pagtuturo ay matatagpuan nang eksakto kung saan ito isinasagawa, tulad ng isang break o call na pagtuturo, at ang bawat pagpapatupad ng pagtuturo na iyon ay magti-trigger ng exception. Ang ibig sabihin ng "Asynchronous" ay hindi posibleng matukoy ang isang pagtuturo, at ang halaga ng pagtuturo sa PC ay maaaring mag-iba sa tuwing may mangyayaring exception. Nangangahulugan ang "Precise asynchronous" na ang isang exception ay matatagpuan nang eksakto sa hangganan ng isang pagtuturo, ibig sabihin, ang estado pagkatapos ng pagpapatupad ng isang pagtuturo, tulad ng isang panlabas na interrupt. Nangangahulugan ang "Non-precision asynchronous" na ang hangganan ng isang pagtuturo ay hindi maaaring tiyak na matatagpuan, at maaaring ang estado pagkatapos ng isang pagtuturo ay naantala sa kalagitnaan ng pagpapatupad, tulad ng isang memory access error.
- Ang pag-access sa memorya ay tumatagal ng oras, at ang microprocessor ay karaniwang hindi naghihintay para sa pagtatapos ng pag-access kapag nag-access sa memorya ngunit patuloy na isinasagawa ang pagtuturo, kapag ang pagbubukod ng error sa pag-access ay naganap muli, ang microprocessor ay naisakatuparan na ang mga kasunod na mga tagubilin, at hindi maaaring tumpak. matatagpuan.
Pagpasok ng Exception
Kapag ang programa ay nasa proseso ng normal na operasyon kung para sa ilang kadahilanan, nag-trigger ng isang pagbubukod o pag-abala. Ang pag-uugali ng hardware ng microprocessor sa puntong ito ay maaaring ibuod bilang mga sumusunod.
- Suspindihin ang kasalukuyang daloy ng programa at lumipat sa pagpapatupad ng exception o interrupt handling function. Ang entry base address at addressing mode ng exception o interrupt function ay tinutukoy ng exception entry base address register mtvec. Tinutukoy ng mtvec[31:2] ang base address ng exception o interrupt function. Tinutukoy ng mtvec[1:0] ang addressing mode ng handler function. kapag mtvec[1:0]=0, lahat ng exception at interrupts ay gumagamit ng pinag-isang entry, ibig sabihin, kapag may naganap na exception o interrupt, lumiliko ito sa mtvec[31:2] na tumutukoy sa base address na ipapatupad. Kapag ang mtvec[1:0]=1, ang mga exception at interrupts ay gumagamit ng vector table mode, ibig sabihin, ang bawat exception at interrupt ay binibilang, at ang address ay na-offset ayon sa interrupt number*4, at kapag may naganap na exception o interrupt, ito ay inililipat. sa base address na tinukoy ng mtvec[31:2] + interrupt number*4 Execution. Ang talahanayan ng interrupt na vector ay naglalaman ng isang tagubilin upang lumipat sa function ng interrupt handler, o maaari itong iba pang mga tagubilin.
- I-update ang CSR register
- Kapag may ipinasok na exception o interrupt, awtomatikong ina-update ng microprocessor ang mga nauugnay na CSR register, kabilang ang Machine mode exception cause register mcause, ang Machine mode exception pointer register mepc, ang Machine mode exception value register metal, at ang Machine mode status register status.
Update mcause
Gaya ng nabanggit dati, pagkatapos magpasok ng exception o interrupt, ang value nito ay sumasalamin sa kasalukuyang exception type o interrupt number, at mababasa ng software ang register value na ito para masuri ang sanhi ng exception o matukoy ang pinagmulan ng interrupt, gaya ng nakadetalye sa Table 2 -1.
I-update ang mepc
- Ang karaniwang kahulugan ng return address ng microprocessor pagkatapos lumabas sa isang exception o interrupt ay naka-imbak sa mepc.
- Kaya kapag naganap ang isang exception o interrupt, awtomatikong ina-update ng hardware ang halaga ng mepc sa kasalukuyang halaga ng pagtuturo sa PC kapag nakatagpo ang exception, o ang susunod na pre-executed na halaga ng pagtuturo sa PC bago ang interrupt.
- Pagkatapos maproseso ang exception o interrupt, ginagamit ng microprocessor ang naka-save na halaga nito bilang return address upang bumalik sa lokasyon ng interrupt upang ipagpatuloy ang pagpapatupad.
- Gayunpaman, ito ay nagkakahalaga ng pagpuna na.
- Ang MEPC ay isang nababasa at nasusulat na rehistro, at ang software ay maaari ring baguhin ang halaga upang baguhin ang lokasyon ng PC pointer na tumatakbo pagkatapos ng pagbabalik.
- Kapag nagkaroon ng interrupt, ibig sabihin, kapag nairehistro ng exception cause ang mcause[31]=1, ang halaga ng mga mapa ay ina-update sa PC value ng susunod na hindi naisagawang pagtuturo sa oras ng interrupt.
- Kapag may nangyaring exception, ina-update ang value ng mga mapa sa instruction PC value ng kasalukuyang exception kapag ang exception ay nagdudulot ng register mcause[31]=0. Kaya't sa oras na ito kapag bumalik ang exception, kung babalik tayo nang direkta gamit ang value ng mepc, patuloy nating isasagawa ang pagtuturo na nakabuo ng exception noon, at sa oras na ito, magpapatuloy tayo sa pagpasok sa exception. Karaniwan, pagkatapos nating hawakan ang pagbubukod, maaari nating baguhin ang halaga ng mepc sa halaga ng susunod na hindi naisagawang pagtuturo at pagkatapos ay bumalik. Para kay example, kung magdulot tayo ng exception dahil sa call/break, pagkatapos mahawakan ang exception, dahil ang recall/break (c.ebreak ay 2 bytes) ay isang 4-byte na pagtuturo, kailangan lang namin ng software para baguhin ang value ng mepc sa mepc +4 (ang c.ebreak ay mepc+2) at pagkatapos ay bumalik.
I-update ang mtval
Kapag naipasok ang mga exception at interrupts, awtomatikong ia-update ng hardware ang halaga ng mtval, na siyang halaga na naging sanhi ng exception. Karaniwan ang halaga.
- Kung ang isang exception ay sanhi ng isang memory access, ang hardware ay mag-iimbak ng address ng memory access sa oras ng exception sa mtval.
- Kung ang pagbubukod ay sanhi ng isang ilegal na pagtuturo, iimbak ng hardware ang code ng pagtuturo ng pagtuturo sa mtval.
- Kung ang pagbubukod ay sanhi ng isang breakpoint ng hardware, iimbak ng hardware ang halaga ng PC sa breakpoint sa mtval.
- Para sa iba pang mga pagbubukod, itinatakda ng hardware ang halaga ng mtval sa 0, tulad ng break, ang pagbubukod na dulot ng pagtuturo ng tawag.
- Kapag pumapasok sa interrupt, itinatakda ng hardware ang halaga ng mtval sa 0.
I-update ang mstatus
Sa pagpasok ng mga exception at interrupts, ina-update ng hardware ang ilang partikular na bit sa mstatus.
- Ang MPIE ay ina-update sa MIE value bago ilagay ang exception o interrupt, at ang MPIE ay ginagamit para i-restore ang MIE pagkatapos ng exception at interrupt.
- Ina-update ang MPP sa privileged mode bago ipasok ang mga exception at interrupts, at pagkatapos ng mga exception at interrupts ay tapos na, ginagamit ang MPP para ibalik ang dating privileged mode.
- Sinusuportahan ng QingKe V3 microprocessor ang interrupt nesting sa Machine mode, at hindi iki-clear ang MIE pagkatapos magpasok ng mga exception at interrupts.
I-update ang microprocessor privilege mode
- Kapag nangyari ang mga exception at interrupts, ang privileged mode ng microprocessor ay ina-update sa Machine mode.
Exception Handling Function
- Sa pagpasok ng exception o interrupt, ipapatupad ng microprocessor ang program mula sa address at mode na tinukoy ng mtvec register. Kapag ginagamit ang pinag-isang entry, kumukuha ang microprocessor ng jump instruction mula sa base address na tinukoy ng mtvec[31:2] batay sa halaga ng mtvec[1], o nakakakuha ng exception at naantala ang paghawak ng function na entry address at napupunta sa halip na isagawa ito . Sa oras na ito, matutukoy ng exception at interrupt handling function kung ang sanhi ay exception o interrupt batay sa halaga ng mcause[31], at ang uri at sanhi ng exception o ang kaukulang interrupt ay maaaring hatulan ng exception code at pinangangasiwaan nang naaayon.
- Kapag ginagamit ang base address + interrupt number *4 para sa offset, awtomatikong tumalon ang hardware sa vector table para makuha ang entry address ng exception o interrupt function batay sa interrupt na numero at tumalon para isagawa ito.
Exception Exit
- Matapos makumpleto ang exception o interrupt handler, kinakailangan na lumabas sa service program. Pagkatapos magpasok ng mga exception at interrupts, papasok ang microprocessor sa Machine mode mula sa User mode, at ang pagproseso ng mga exception at interrupts ay nakumpleto din sa Machine mode. Kapag kinakailangan na lumabas sa mga exception at interrupts, kailangang gamitin ang mret instruction para bumalik. Sa oras na ito, awtomatikong gagawin ng microprocessor hardware ang mga sumusunod na operasyon.
- Ang PC pointer ay naibalik sa halaga ng CSR register mepc, ibig sabihin, ang pagpapatupad ay magsisimula sa address ng pagtuturo na na-save ng mepc. Kinakailangang bigyang-pansin ang offset operation ng mepc pagkatapos makumpleto ang paghawak ng exception.
- I-update ang status ng rehistro ng CSR, ang MIE ay naibalik sa MPIE, at ang MPP ay ginagamit upang ibalik ang privileged mode ng nakaraang microprocessor.
- Ang buong proseso ng pagtugon sa pagbubukod ay maaaring ilarawan ng sumusunod na Larawan 2-1.

PFIC at Interrupt Control
- Ang QingKe V3 microprocessor ay idinisenyo gamit ang isang Programmable Fast Interrupt Controller (PFIC) na kayang pamahalaan ang hanggang 256 na interrupt kabilang ang mga exception.
- Ang unang 16 sa mga ito ay naayos bilang panloob na mga interrupt ng microprocessor, at ang iba ay mga panlabas na interrupt, ibig sabihin, ang maximum na bilang ng mga panlabas na interrupt ay maaaring mapalawak sa 240. Ang mga pangunahing tampok nito ay ang mga sumusunod.
- 240 external interrupts, bawat interrupt request ay may independiyenteng trigger at mask control bits, na may nakalaang status bits
- Sinusuportahan ng programmable interrupt priority ang 2 antas ng nesting
- Espesyal na mabilis na pagkagambala sa pagpasok/paglabas ng mekanismo, awtomatikong pagsasalansan ng hardware, at pagbawi, maximum na lalim ng HPE na 2 antas
- Vector Table Free (VTF) interrupt response mechanism, 2-channel na programmable na direktang access sa interrupt na mga vector address
- Tandaan: Ang maximum na lalim ng nesting at lalim ng HPE na sinusuportahan ng mga interrupt na controller ay nag-iiba para sa iba't ibang modelo ng microprocessor, na makikita sa Talahanayan 1-1.
- Ang vector table ng mga interrupt at exception ay ipinapakita sa Table 3-1 sa ibaba.
Talahanayan 3-1 Exception at interrupt vector table
| Numero | Priyoridad | Uri | Pangalan | Paglalarawan |
| 0 | – | – | – | – |
| 1 | – | – | – | – |
| 2 | -5 | Naayos na | NMI | Non-maskable interrupt |
| 3 | -4 | Naayos na | EXC | Exception interrupt |
| 4 | – | – | – | – |
| 5 | -3 | Naayos na | TUMAWAG-M | Naantala ang callback ng machine mode |
| 6-7 | – | – | – | – |
| 8 | -2 | Naayos na | TUMAWAG-U | Naantala ang callback ng user mode |
| 9 | -1 | Naayos na | BREAKPOINT | Naantala ang breakpoint callback |
| 10-11 | – | – | – | – |
| 12 | 0 | Programmable | SysTick | Naantala ang timer ng system |
| 13 | – | – | – | – |
| 14 | 1 | Programmable | SWI | Pagkagambala ng software |
| 15 | – | – | – | – |
| 16-255 | 2-241 | Programmable | Panlabas na Pagkagambala | Panlabas na interrupt 16-255 |
Tandaan: Ang ECALL-M, ECALL-U, at BREAKPOINT ay lahat ng iba't ibang uri ng exception EXC, na independiyente sa V3B/C para sa kadalian ng paggamit, at ang 3 entry na address sa itaas ay ibinabahagi sa EXC sa V3A.
Set ng Rehistro ng PFIC
Talahanayan 3-2 Mga Rehistro ng PFIC
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
| PFIC_ISRx | 0xE000E000
-0xE000E01C |
RO | Interrupt enable ang status register x | 0x00000000 |
| PFIC_IPRx | 0xE000E020
-0xE000E03C |
RO | Abalahin ang nakabinbing rehistro ng katayuan x | 0x00000000 |
| PFIC_ITHRESDR | 0xE000E040 | RW | Abalahin ang priority threshold configuration register | 0x00000000 |
| PFIC_VTFBADDRR | 0xE000E044 | RW | VTF base address register
Tandaan: Wasto lamang para sa V3A |
0x00000000 |
| PFIC_CFGR | 0xE000E048 | RW | Abalahin ang rehistro ng pagsasaayos
Tandaan: Wasto lamang para sa V3A |
0x00000000 |
| PFIC_GISR | 0xE000E04C | RO | I-interrupt ang global status register | 0x00000002 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
VTF interrupt ID configuration register
Tandaan: Wasto lamang para sa V3B/C. |
0x00000000 |
| PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | VTF x offset na rehistro ng address | 0xXXXXXXXXX |
| PFIC_IENRx | 0xE000E100
-0xE000E11C |
WO | Interrupt enable ang setting register x | 0x00000000 |
| PFIC_IRERx | 0xE000E180
-0xE000E19C |
WO | Interrupt paganahin ang malinaw na rehistro x | 0x00000000 |
| PFIC_IPSRx | 0xE000E200
-0xE000E21C |
WO | Abala sa nakabinbing setting register x | 0x00000000 |
| PFIC_IPRRx | 0xE000E280
-0xE000E29C |
WO | Abalahin ang nakabinbing malinaw na rehistro x | 0x00000000 |
| PFIC_IACTRx | 0xE000E300
-0xE000E31C |
RO | Interrupt activation status register x | 0x00000000 |
| PFIC_IPRIORx | 0xE000E400
-0xE000E43C |
RW | Abalahin ang priority configuration register | 0x00000000 |
| PFIC_SCTLR | 0xE000ED10 | RW | Register ng kontrol ng system | 0x00000000 |
Tandaan:
- Ang NMI, EXC, ECALL-M, ECALL-U, at BREAKPOINT ay palaging pinapagana bilang default.
- Ang ECALL-M, ECALL-U, at BREAKPOINT ay isang kaso ng EXC.
- Ang NMI, EXC, ECALL-M, ECALL-U, at BREAKPOINT ay sumusuporta sa interrupt habang nakabinbin ang clear at setting na operasyon, ngunit hindi interrupt ang paganahin ang clear at setting na operasyon.
Ang bawat rehistro ay inilarawan bilang mga sumusunod:
Interrupt enable ang status at interrupt ang nakabinbing status registers (PFIC_ISR<0-7>/PFIC_IPR<0-7>)
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
| PFIC_ISR0 | 0xE000E000 | RO | Ang Interrupt 0-31 ay nagbibigay-daan sa pagpaparehistro ng katayuan, isang kabuuang 32 bits ng katayuan [n], na nagsasaad na ang #n interrupt ay nagbibigay-daan sa katayuan
Tandaan: Naka-enable ang NMI at EXC bilang default |
Para sa V3A: 0x0000000C
Para sa V3B/C: 0x0000032C |
| PFIC_ISR1 | 0xE000E004 | RO | Interrupt 32-63 paganahin ang rehistro ng katayuan, isang kabuuang 32 bits ng katayuan | 0x00000000 |
| … | … | … | … | … |
| PFIC_ISR7 | 0xE000E01C | RO | Interrupt 224-255 paganahin ang pagpaparehistro ng katayuan, isang kabuuang 32 bits ng katayuan | 0x00000000 |
| PFIC_IPR0 | 0xE000E020 | RO | Interrupt 0-31 nakabinbing katayuan | 0x00000000 |
| rehistro, sa kabuuan na 32 status bits [n], na nagpapahiwatig ng nakabinbing status ng interrupt #n | ||||
| PFIC_IPR1 | 0xE000E024 | RO | Abalahin ang 32-63 na nakabinbing mga rehistro ng katayuan, 32 bit ng katayuan sa kabuuan | 0x00000000 |
| … | … | … | … | … |
| PFIC_IPR7 | 0xE000E03C | RO | I-interrupt ang 244-255 na nakabinbing status register, 32 status bits sa kabuuan | 0x00000000 |
Dalawang set ng mga rehistro ang ginagamit upang paganahin at i-de-enable ang mga kaukulang interrupts.
Interrupt enable setting at i-clear ang mga register (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
| PFIC_IENR0 | 0xE000E100 | WO | Ang Interrupt 0-31 ay nagbibigay-daan sa pagpaparehistro ng pagtatakda, sa kabuuan na 32 bits ng setting [n], para sa interrupt #n paganahin ang setting
Tandaan: NMI at EXC ay pinagana bilang default |
0x00000000 |
| PFIC_IENR1 | 0xE000E104 | WO | I-interrupt ang 32-63 para paganahin ang setting register, sa kabuuan ay 32 setting bits | 0x00000000 |
| … | … | … | … | … |
| PFIC_IENR7 | 0xE000E11C | WO | Interrupt 224-255 enable ang setting
magparehistro, isang kabuuang 32 setting bits |
0x00000000 |
| – | – | – | – | – |
| PFIC_IRER0 | 0xE000E180 | WO | Ang mga interrupts 0-31 ay nagbibigay-daan sa malinaw na rehistro, isang kabuuang 32 malinaw na bits [n], para sa interrupt #n paganahin ang malinaw Tandaan: Hindi maaaring ang NMI at EXC pinaandar |
0x00000000 |
| PFIC_IRER1 | 0xE000E184 | WO | Ang interrupt 32-63 ay nagbibigay-daan sa isang malinaw na rehistro, isang kabuuang 32 malinaw na mga piraso | 0x00000000 |
| … | … | … | … | … |
| PFIC_IRER7 | 0xE000E19C | WO | Ang interrupt 244-255 ay nagbibigay-daan sa isang malinaw na rehistro, isang kabuuang 32 malinaw na mga piraso | 0x00000000 |
Dalawang set ng mga rehistro ang ginagamit upang paganahin at i-de-enable ang mga kaukulang interrupts.
Abalahin ang nakabinbing setting at i-clear ang mga rehistro (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
|
PFIC_IPSR0 |
0xE000E200 |
WO |
Interrupt 0-31 nakabinbing setting register, 32
setting bits [n], para sa interrupt #n nakabinbing setting |
0x00000000 |
| PFIC_IPSR1 | 0xE000E204 | WO | Abalahin ang 32-63 nakabinbing rehistro ng pag-setup,
kabuuang 32 setup bits |
0x00000000 |
| … | … | … | … | … |
| PFIC_IPSR7 | 0xE000E21C | WO | Interrupt 224-255 nakabinbing setting
magparehistro, 32 setting bits sa kabuuan |
0x00000000 |
| – | – | – | – | – |
|
PFIC_IPRR0 |
0xE000E280 |
WO |
Interrupt 0-31 pending clear register, kabuuang 32 clear bits [n], para sa interrupt #n
nakabinbing malinaw |
0x00000000 |
| PFIC_IPRR1 | 0xE000E284 | WO | Interrupt 32-63 nakabinbing malinaw na rehistro,
kabuuang 32 malinaw na piraso |
0x00000000 |
| … | … | … | … | … |
| PFIC_IPRR7 | 0xE000E29C | WO | Interrupt 244-255 nakabinbing malinaw na rehistro,
kabuuang 32 malinaw na piraso |
0x00000000 |
Kapag pinagana ng microprocessor ang isang interrupt, maaari itong itakda nang direkta sa pamamagitan ng nakabinbing rehistro ng interrupt upang ma-trigger ang interrupt. Gamitin ang interrupt na nakabinbing malinaw na rehistro upang i-clear ang nakabinbing trigger.
Interrupt activation status register (PFIC_IACTR<0-7>)
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
| PFIC_IACTR0 | 0xE000E300 | RO | Ina-activate ng Interrupt 0-31 ang status register na may 32 status bits [n], na nagpapahiwatig na ang interrupt #n ay isinasagawa | 0x00000000 |
| PFIC_IACTR1 | 0xE000E304 | RO | I-interrupt ang 32-63 activation status registers, 32 status bits in
kabuuan |
0x00000000 |
| … | … | … | … | … |
| PFIC_IACTR7 | 0xE000E31C | RO | Abalahin ang 224-255 activation status registers, sa kabuuan ay 32 status bits | 0x00000000 |
Ang bawat interrupt ay may aktibong status bit na naka-set up kapag ang interrupt ay ipinasok at na-clear ng hardware kapag bumalik ang market.
Abalahin ang priority at priority threshold registers (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
| PFIC_IPRIOR0 | 0xE000E400 | RW | Abalahin ang 0 priority configuration. V3A: [7:4]: Priority control bits Kung hindi naka-nest ang configuration, walang preemption bit Kung na-configure ang nesting, bit7 ang preempted bit. [3:0]: Nakalaan, naayos sa 0 V3B: [7:6]: Priority control bits Kung hindi naka-nest ang configuration, walang preemptive bits na na-configure na nested, lahat ng bits ay na-preempted, ngunit hanggang sa dalawang antas ng interrupts ang pinapayagang maganap [5:0]: Nakalaan, naayos sa 0 V3C: [7:5]: Priority control bits Kung hindi naka-nest ang configuration, walang preemptive bits Kung na-configure ang nested, ang lahat ng mga bit ay na-preempted, ngunit hanggang sa dalawang antas ng mga interrupts ay pinapayagang mangyari [4:0]: Nakalaan, nakatakda sa 0 Tandaan: Kung mas maliit ang halaga ng priyoridad, mas mataas ang priyoridad. Kung ang parehong preemption priority interrupt ay mag-hang sa parehong oras, ang interrupt na may mas mataas na priyoridad ay unang isasagawa. |
0x00 |
| PFIC_IPRIOR1 | 0xE000E401 | RW | Abalahin ang 1 setting ng priyoridad, parehong function bilang PFIC_IPRIOR0 | 0x00 |
| PFIC_IPRIOR2 | 0xE000E402 | RW | Abalahin ang 2 setting ng priyoridad, parehong function bilang PFIC_IPRIOR0 | |
| … | … | … | … | … |
| PFIC_IPRIOR254 | 0xE000E4FE | RW | Interrupt 254 priority setting, parehong function bilang PFIC_IPRIOR0 | 0x00 |
| PFIC_IPRIOR255 | 0xE000E4FF | RW | Abalahin ang 255 setting ng priyoridad, parehong function bilang PFIC_IPRIOR0 | 0x00 |
| – | – | – | – | – |
| PFIC_ITHRESDR | 0xE000E040 | RW | Abalahin ang setting ng threshold ng priyoridad
V3A: [31:8]: Nakalaan, nakatakda sa 0 [7:4]: Priority threshold [3:0]: Nakalaan, nakatakda sa 0V3B: [31:8]: Nakalaan, nakatakda sa 0 [7:5]: Priority threshold [4:0]: Nakalaan, nakatakda sa 0V3C: [31:8]: Nakalaan, nakatakda sa 0 [7:5]: Priority threshold [4:0]: Nakalaan, nakatakda sa 0Tandaan: Para sa mga interrupt na may priority value na ≥ threshold, ang interrupt service function ay hindi ipapatupad kapag nagkaroon ng hang, at kapag ang register na ito ay 0, ibig sabihin ay invalid ang threshold register. |
0x00 |
Interrupt configuration register (PFIC_CFGR)
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
| PFIC_CFGR | 0xE000E048 | RW | Abalahin ang rehistro ng pagsasaayos | 0x00000000 |
Ang rehistrong ito ay may bisa lamang para sa V3A, ang mga bit nito ay tinukoy bilang:
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:16] | KEYCODE | WO | Naaayon sa iba't ibang target na control bits, ang kaukulang data ng pagkakakilanlan ng access sa seguridad ay kailangang isulat nang sabay-sabay upang mabago, at ang readout data ay nakatakda sa 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF。 | 0 |
| [15:8] | Nakareserba | RO | Nakareserba | 0 |
| 7 | SYSRESET | WO | Pag-reset ng system (sabay-sabay na pagsulat sa KEY3). Auto clear 0.
Ang pagsulat 1 ay wasto, ang pagsulat ng 0 ay hindi wasto. Tandaan: Parehong function sa PFIC_SCTLR register SYSRESET bit. |
0 |
| 6 | PFICRESET | WO | I-reset ang module ng PFIC. Auto clear 0.
Ang pagsulat 1 ay wasto, ang pagsulat ng 0 ay hindi wasto. |
0 |
| 5 | Ipahayag | WO | Exception interrupt nakabinbin malinaw (sabay-sabay na pagsulat sa KEY2)
Ang pagsulat 1 ay wasto, ang pagsulat ng 0 ay hindi wasto. |
0 |
| 4 | EXCSET | WO | Exception interrupt nakabinbing setting (sabay-sabay na pagsulat sa KEY2)
Ang pagsulat 1 ay wasto, ang pagsulat ng 0 ay hindi wasto. |
0 |
| 3 | NMIRESET | WO | NMI interrupt nakabinbin malinaw (sabay-sabay na pagsulat sa KEY2)
Ang pagsulat 1 ay wasto, ang pagsulat ng 0 ay hindi wasto. |
0 |
| 2 | NMISET | WO | Nakabinbing setting ng interrupt ng NMI (Sabay-sabay na pagsulat sa KEY2)
Ang pagsulat 1 ay wasto, ang pagsulat ng 0 ay hindi wasto. |
0 |
| 1 | NESTCTRL | RW | Ang interrupt nesting ay nagbibigay-daan sa kontrol.
1: off; 0: on (kasabay na pagsulat sa KEY1) |
0 |
| 0 | HWSTKCTRL | RW | Paganahin ang kontrol ng HPE
1: off; 0: on (kasabay na pagsulat sa KEY1) |
0 |
Abalahin ang global status register (PFIC_GISR)
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
| PFIC_GISR | 0xE000E04C | RO | I-interrupt ang global status register | 0x00000000 |
Ang mga kamag-anak nito ay tinukoy bilang
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:14] | Nakareserba | RO | Nakareserba | 0 |
|
13 |
LOCKSTA |
RO |
Kung ang processor ay kasalukuyang nasa isang naka-lock na estado:
1: Naka-lock na estado; 0: Hindi naka-lock na estado. Tandaan: Ang bit na ito ay may bisa lamang para sa V3B/C. |
0 |
|
12 |
DBGMODE |
RO |
Kung ang processor ay kasalukuyang nasa debug state: 1: Debug state;
0: Non-debug na estado. Tandaan: Ang bit na ito ay may bisa lamang para sa V3B/C. |
0 |
|
11 |
GLOBLIE |
RO |
Paganahin ang global interrupt:
1: Paganahin ang interrupt; 0: Huwag paganahin ang pagkagambala. Tandaan: Ang bit na ito ay may bisa lamang para sa V3B/C. |
|
| 10 | Nakareserba | RO | Nakareserba | 0 |
| 9 | GPENDSTA | RO | Kung ang isang interrupt ay kasalukuyang nakabinbin.
1: Oo; 0: Hindi. |
0 |
| 8 | GACTSTA | RO | Kung ang isang interrupt ay kasalukuyang isinasagawa.
1: Oo; 0: Hindi. |
0 |
|
[7:0] |
NESTSTA |
RO |
Kasalukuyang interrupt nesting status. 0x03: nasa level 2 interrupt.
0x01: nasa level 1 na interrupt. 0x00: walang mga interrupt na nagaganap. Iba pa: Imposibleng sitwasyon. |
0 |
VTF ID base address at offset address registers (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
|
PFIC_VTFBADDRR |
0xE000E044 |
RW |
[31:28]: Mataas na 4 bits ng target na address ng VTF [27:0]: Nakalaan
Ang rehistrong ito ay may bisa lamang para sa V3A. |
0x00000000 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
[31:24]: Bilang ng VTF 3 [23:16]: Bilang ng VTF 2 [15:8]: Bilang ng VTF 1 [7:0]: Bilang ng VTF 0
Ang rehistrong ito ay may bisa lamang para sa V3B/C. |
0x00000000 |
| – | – | – | – | – |
|
PFIC_VTFADDRR0 |
0xE000E060 | RW | V3A: [31:24]: VTF 0 interrupt number [23:0]: ang mababang 24 bits ng VTF target address, kung saan ang mababang 20 bits ay naka-configure na wasto, at [23:20] ay nakatakda sa 0 .
V3B/C: [31:1]: VTF 0 address, 2-byte na nakahanay [0]:1: Paganahin ang VTF 0 channel 0: Huwag paganahin |
Para sa V3A: 0x00000000 Para sa V3B/C: 0xXXXXXXXXX |
|
PFIC_VTFADDRR1 |
0xE000E064 |
RW |
V3A: [31:24]: VTF 1 interrupt number [23:0]: Ang mababang 24 bits ng VTF target address, kung saan ang mababang 20 bits ay naka-configure na wasto at [23:20] ay nakatakda sa 0.
V3B/C: [31:1]: VTF 1 address, 2-byte na nakahanay [0]:1: Paganahin ang VTF 1 channel 0: Huwag paganahin |
Para sa V3A: 0x00000000 Para sa V3B/C: 0xXXXXXXXXX |
|
PFIC_VTFADDRR2 |
0xE000E068 |
RW |
V3A: [31:24]: VTF 2 interrupt number [23:0]: ang mababang 24 bits ng VTF target address, kung saan ang mababang 20 bits ay naka-configure na wasto, at [23:20] ay nakatakda sa 0 .
V3B/C: [31:1]: VTF 2 address, 2-byte na nakahanay [0]:1: Paganahin ang VTF 2 channel 0: Huwag paganahin |
Para sa V3A: 0x00000000 Para sa V3B/C: 0xXXXXXXXXX |
| PFIC_VTFADDRR3 | 0xE000E06C | RW | V3A: | Para sa V3A: |
| [31:24]: VTF 3 interrupt number [23:0]: ang mababang 24 bits ng VTF target na address, kung saan ang mababang 20 bits ay na-configure na wasto, at [23:20] ay nakatakda sa 0.
V3B/C: [31:1]: VTF 3 address, 2-byte na nakahanay [0]:1: Paganahin ang VTF 3 channel 0: Huwag paganahin |
0x00000000
Para sa V3B/C: 0xXXXXXXXXX |
System control register (PFIC_SCTLR)
| Pangalan | Access address | Access | Paglalarawan | I-reset ang halaga |
| PFIC_SCTLR | 0xE000ED10 | RW | Register ng kontrol ng system | 0x00000000 |
Ang bawat isa sa kanila ay tinukoy bilang mga sumusunod.
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| 31 | SYSRESET | WO | Pag-reset ng system, awtomatikong i-clear ang 0. Ang write 1 ay wasto, at ang write 0 ay hindi wasto.
Tandaan: Ang bit na ito ay may bisa lamang para sa V3B/C |
0 |
| [30:6] | Nakareserba | RO | Nakareserba | 0 |
| 5 | SETEVENT | WO | Itakda ang kaganapan upang magising ang kaso ng WFE. | 0 |
|
4 |
SEVONPEND | RW | Kapag naganap ang isang kaganapan o naantala ang isang nakabinbing estado, maaaring magising ang system pagkatapos ng pagtuturo ng WFE, o kung ang pagtuturo ng WFE ay hindi naisakatuparan, ang system ay agad na gigising pagkatapos ng susunod na pagpapatupad ng pagtuturo.
1: Ang mga naka-enable na kaganapan at lahat ng mga interrupt (Kabilang ang mga hindi pinaganang interrupt) ay maaaring magising sa system. 0: Mga kaganapan lang na pinagana at pinagana maaaring gisingin ng mga interrupt ang system. |
0 |
| 3 | WFITOWFE | RW | Isagawa ang utos ng WFI na parang ito ay isang WFE.
1: Tratuhin ang kasunod na pagtuturo ng WFI bilang isang pagtuturo ng WFE. 0: Walang epekto. |
0 |
| 2 | TULOG NA | RW | Mababang mode ng kapangyarihan ng control system. | 0 |
| 1: malalim na tulog 0: matulog | ||||
| 1 | SLEEPONEXI T | RW | Ang katayuan ng system pagkatapos ng kontrol ay umalis sa programa ng interrupt na serbisyo.
1: Papasok ang system sa low-power mode. 0: Ang sistema ay pumapasok sa pangunahing programa. |
0 |
| 0 | Nakareserba | RO | Nakareserba | 0 |
Mga Rehistro ng CSR na nauugnay sa interrupt
Bilang karagdagan, ang mga sumusunod na rehistro ng CSR ay mayroon ding malaking epekto sa pagproseso ng mga pagkagambala. I-interrupt ang system control register (intsyscr)
Ang rehistrong ito ay hindi wasto para sa V3A lamang:
| Pangalan | CSR Address | Access | Paglalarawan | I-reset ang halaga |
| intsyscr | 0x804 | URW | Abalahin ang rehistro ng control system | 0x0000E002 |
Ang mga tao nito ay tinukoy bilang:
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
|
31 |
LOCK |
URO |
0: Ang rehistrong ito ay maaaring basahin at isulat sa user mode;
1: Ang rehistrong ito ay maaari lamang basahin at isulat sa machine mode. Tandaan: Ang configuration bit na ito ay wasto mula sa bersyon 1.0 pataas. |
0 |
| [30:6] | Nakareserba | URO | Nakareserba | 0x380 |
|
5 |
GIHWSTKNEN |
URW1 |
Ang global interrupt at hardware stack shutdown ay pinagana.
Tandaan: Ang bit na ito ay kadalasang ginagamit sa real-time na mga operating system. Kapag ang konteksto ay inilipat sa panahon ng isang interrupt, ang pagtatakda ng bit na ito ay maaaring i-off ang global interrupt at itulak ang hardware stack. Kapag nakumpleto na ang switch ng konteksto at bumalik ang interrupt, gagana ang hardware awtomatikong i-clear ang bit na ito. |
0 |
| 4 | Nakareserba | URO | Nakareserba | 0 |
| [3:2] | PMTCFG | URW | Configuration ng priority preemption bits:
00: Ang bilang ng mga preemption bit ay 0; 01: Ang bilang ng mga preemption bit ay 1; 10: Ang bilang ng mga preemption bit ay 2; 11: Ang bilang ng mga preemption bit ay 3; Tandaan: Ang configuration bit na ito ay valid pagkatapos 1.0. |
0 |
| 1 | MAKINIG | URW | Ang interrupt nesting function ay pinagana, at ang fixed value ay 1: | 1 |
| 0: Huwag paganahin;
1: Paganahin. Tandaan: 1. Ang aktwal na antas ng nesting ay kinokontrol ng NEST_LVL sa CSR 0xBC1; 2. Ang mga bersyon lamang pagkatapos ng 1.0 ang maaaring nakasulat. |
||||
| 0 | HWSTKEN | URW | Pinagana ang stack ng hardware:
0: Ang hardware stack pressing function ay hindi pinagana; 1: Ang hardware stack pressing function ay pinagana. |
0 |
Machine mode exception base address register (mtvec)
| Pangalan | CSR Address | Access | Paglalarawan | I-reset ang halaga |
| mtvec | 0x305 | MRW | Exception base address register | 0x00000000 |
Ang mga kamag-anak nito ay tinukoy bilang
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:2] | BASEADDR[31:2] | MRW | Abalahin ang vector table base address, kung saan
bits [9:2] ay naayos sa 0. |
0 |
| 1 | MODE1 |
MRO |
Interrupt vector table recognition mode: 0: Kilalanin sa pamamagitan ng jump instruction, na may limitadong saklaw, at suportahan ang non-jump instruction;
1: Kilalanin sa pamamagitan ng ganap na address, suportahan ang buong saklaw, ngunit dapat tumalon. Tandaan: Ang bit na ito ay may bisa lamang para sa V3B/C. |
0 |
| 0 | MODE0 | MRW | Pagpili ng mode ng interrupt o exception entry address.
0: Paggamit ng pare-parehong entry address. 1: Address offset batay sa interrupt number *4. |
0 |
Para sa mga MCU na may mga V3 series microprocessors, ang MODE0 ay naka-configure na 1 bilang default sa startup file, at ang mga entry para sa mga exception o interrupts ay na-offset ayon sa interrupt na numero *4. Tandaan na ang V3A microprocessor ay nag-iimbak ng jump instruction sa vector table, habang ang V3B/C microprocessor ay maaaring alinman sa isang jump instruction o gamitin ang absolute address ng interrupt function, na naka-configure bilang absolute address sa default na startup file.
Microprocessor configuration register (corrector)
Ang rehistrong ito ay hindi wasto para sa V3A:
| Pangalan | CSR Address | Access | Paglalarawan | I-reset ang halaga |
| corecfgr | 0xBC0 | MRW | Rehistro ng pagsasaayos ng microprocessor | 0x00000001 |
Ang mga kamag-anak nito ay tinukoy bilang
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:8] | Nakareserba | MRO | Nakareserba | 0 |
|
7 |
CSTA_FAULT_IE |
MRW |
Paganahin ang pagkagambala ng error sa core status:
0: Sa status error, walang NMI interrupt na nabuo; 1: Sa error sa status, ang NMI interrupt ay nabuo. |
0 |
| 6 | Nakareserba | MRO | Panatilihin itong 0. | 0 |
| 5 | IE_REMAP_EN | MRW | Ang pagmamapa ng rehistro ng MIE ay nagbibigay-daan sa:
0: Ang CSR address na 0x800 ay isang read-only na rehistro at ang ibinalik na halaga ay ang halaga ng STATUS; 1: Ang mga bit 3 at 7 ng CSR address na 0x800 ay nakamapa sa bit MIE ng STATUS register at bit MPIE ng STATUS register, ayon sa pagkakabanggit. |
0 |
| 4 | Nakareserba | MRO | Nakareserba | 0 |
| 3 | ROM_LOOP_ACC | MRW | Paganahin ang pagpabilis ng loop ng pagtuturo sa lugar ng ROM:
0: I-off ang cyclic acceleration function sa lugar ng ROM; 1: Ang mga patuloy na tagubilin na may loop body sa loob ng 128 bytes ay ganap na mapapabilis, habang ang mga may loop body sa loob ng 256 bytes ay bahagyang mapapabilis; |
0 |
| 2 | ROM_JUMP_ACC | MRW | Pinagana ang pagpabilis ng paglukso ng pagtuturo sa lugar ng ROM:
0: Huwag paganahin ang ROM area instruction jump acceleration; 1: Paganahin ang pagpabilis ng pagtalon ng pagtuturo sa lugar ng ROM. |
0 |
| [1:0] | FETCH_MODE | MRW | Mode ng pagkuha:
00: Naka-off ang prefetch. Ang function na prefetch ng pagtuturo ay naka-off upang maiwasan ang mga di-wastong operasyon ng pagkuha ng pagtuturo, at mayroong hindi hihigit sa isang wastong pagtuturo sa pipeline ng CPU. Ang modelong ito ay may pinakamababang pagkonsumo ng kuryente, at ang pagganap nito ay bumaba ng humigit-kumulang 2 ~ 3 beses. 01: Prefetch Mode 1. Kapag ang instruction prefetch function ay naka-on, ang CPU ay patuloy na maa-access ang instruction memory hanggang sa ang bilang ng mga instruction na isasagawa sa internal instruction buffer ay lumampas sa isang tiyak na numero, o ang instruction buffer ay puno na, at sususpindihin ang pagkuha ng pagtuturo; (Ang pagkabigong hulaan ng CPU ay hahantong sa paulit-ulit na operasyon ng pagkuha, at sa ilang mga kaso, ang execution unit ay magpapakilala ng 0 ~ 2 cycle ng mga bula, at ang pagganap ng karamihan sa mga programa ay hindi malinaw na bababa); 10: Nakalaan; |
0x1 |
Abalahin ang nested control register (inestcr)
Ang rehistrong ito ay hindi wasto para lamang sa V3A:
| Pangalan | CSR Address | Access | Paglalarawan | I-reset ang halaga |
| mamumuhunan | 0xBC1 | MRW | Abalahin ang nested control register | 0x00000000 |
Ang mga kamag-anak nito ay tinukoy bilang
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| 31 | Nakareserba | MRO | Nakareserba | 0 |
| 30 | NEST_OV | MRW | Interrupt/exception nested overflow flag bit, isulat ang 1 para i-clear:
0: Hindi umapaw ang interrupt; 1: Interrupt overflow flag. Tandaan: Mangyayari lamang ang interrupt overflow kapag isinasagawa ang pangalawang interrupt service function upang makabuo ng instruction exception o NMI interrupt. Sa oras na ito, normal na pumapasok ang exception at NMI interrupt, ngunit umaapaw ang CPU stack, kaya hindi ka maaaring lumabas sa exception na ito at Nagambala ang NMI. |
0 |
| [29:12] | Nakareserba | MRO | Nakareserba | 0 |
| [11:8] | NEST_STA | MRO | Nested status flag bit:
0000: Walang interrupt; 0001: Level 1 interrupt; 0011: level 2 interrupt (1-level nesting); |
0 |
| 0111: Level 3 interrupt (overflow);
1111: Level 4 interrupt (overflow). |
||||
| [7:2] | Nakareserba | MRO | Nakareserba | 0 |
| [1:0] | NEST_LVL | MRW | Antas ng nesting:
00: Ipinagbabawal ang nesting at naka-off ang nesting function; 01: First-level nesting, na nag-o-on sa nesting function; Iba pa: Di-wasto. Tandaan: Sumulat ng 10 o 11 sa field na ito, at ang field ay itatakda sa 01. Kapag nagsusulat ng 11 sa field na ito, basahin ang register na ito upang makuha ang pinakamataas na antas ng nesting ng chip. |
0 |
User mode global interrupt enable register (intern)
Ang rehistrong ito ay hindi wasto para lamang sa V3A:
| Pangalan | CSR Address | Access | Paglalarawan | I-reset ang halaga |
| gintenr | 0x800 | URW | Global interrupt enable register | 0x00000000 |
Ang rehistrong ito ay ginagamit upang kontrolin ang paganahin at pagtakpan ng global interrupt. Ang enable at mask ng global interrupt sa machine mode ay maaaring kontrolin ng MIE at MPIE bits sa status, ngunit ang register na ito ay hindi maaaring patakbuhin sa user mode.
Ang global interrupt enable register gintenr ay ang pagmamapa ng MIE at MPIE sa mstatus, at maaaring gamitin upang itakda at i-clear ang MIE at MPIE sa pamamagitan ng pagpapatakbo ng gintenr sa user mode.
Ang bawat isa sa kanila ay tinukoy bilang:
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:13] | Nakareserba | URO | Nakareserba | 0 |
| [12:11] | MPP | URO | Ipasok ang privileged mode bago maantala. | 0 |
| [10:8] | Nakareserba | URO | Nakareserba | 0 |
| 7 | MPIE | URW | Kapag pinagana ang 0xBC0(CSR)bit5, ang bit na ito
maaaring basahin at isulat sa mode ng gumagamit. |
0 |
| [6:4] | Nakareserba | URO | Nakareserba | 0 |
| 3 | MIE | URW | Kapag pinagana ang 0xBC0(CSR)bit5, ang bit na ito
maaaring basahin at isulat sa mode ng gumagamit. |
0 |
| [1:0] | Nakareserba | URO | Nakareserba | 0 |
Abalahin ang Nesting
Kasabay ng interrupt, configuration register PFIC_CFGR at ang interrupt priority register na PFIC_IPRIOR, ang nesting of interrupts ay maaaring payagang mangyari. I-enable ang nesting sa interrupt configuration register (Nesting ay naka-on bilang default para sa V3 series microprocessors) at i-configure ang priyoridad ng kaukulang interrupt. Kung mas maliit ang halaga ng priyoridad, mas mataas ang priyoridad. Kung mas maliit ang value ng preemption bit, mas mataas ang preemption priority. Kung may mga interrupt na nakasabit sa parehong oras sa ilalim ng parehong preemption priority, tutugon ang microprocessor sa interrupt na may mas mababang priority value (mas mataas na priority) muna.
Hardware Prologue/Epilogue (HPE)
- Kapag may nangyaring exception o interrupt, ihihinto ng microprocessor ang kasalukuyang daloy ng program at lilipat sa pagpapatupad ng exception o interrupt handling function, kailangang i-save ang site ng kasalukuyang daloy ng program. Matapos ang pagbubukod o pag-abala sa pagbabalik, kinakailangan na ibalik ang site at ipagpatuloy ang pagpapatupad ng natigil na daloy ng programa. Para sa mga microprocessor ng serye ng V3, ang "site" dito ay tumutukoy sa lahat ng Caller Saved na rehistro sa Talahanayan 1-2.
- Sinusuportahan ng mga microprocessor ng serye ng V3 ang hardware single-cycle na awtomatikong pag-save ng 16 sa mga rehistrong naka-save na tumatawag sa hugis sa isang panloob na lugar ng stack na hindi nakikita ng user. Kapag bumalik ang isang exception o interrupt, awtomatikong ire-restore ng hardware single cycle ang data mula sa internal stack area sa 16-shaped registers. Sinusuportahan ng HPE ang nesting hanggang sa 2 antas ang lalim.
- Ang isang schematic ng microprocessor pressure stack ay ipinapakita sa sumusunod na figure.

Tandaan:
- Ang mga interrupt na function gamit ang HPE ay kailangang i-compile gamit ang MRS o ang ibinigay nitong toolchain at ang interrupt function ay kailangang ideklara na may __attribute__((interrupt(“WCH-Interrupt-fast”))).
- Ang interrupt function gamit ang stack push ay idineklara ng __attribute__((interrupt())).
Vector Table Free (VTF)
- Ang Programmable Fast Interrupt Controller (PFIC) ay nagbibigay ng 4 na VTF channel, ibig sabihin, direktang access sa interrupt function entry nang hindi dumadaan sa interrupt vector table lookup process.
- Maaaring paganahin ang channel ng VTF sa pamamagitan ng pagsusulat ng interrupt number nito, interrupt service function base address, at offset address sa kaukulang PFIC controller register habang kino-configure nang normal ang isang interrupt function.
- Ang proseso ng pagtugon ng PFIC para sa mabilis at walang table na mga interrupt ay ipinapakita sa Figure 3-2 sa ibaba.

Pisikal na Memory Protection PMP
- Upang mapabuti ang seguridad ng system, ang module ng physical memory protection (PMP) ay idinisenyo ayon sa pamantayan ng arkitektura ng RISC-V para sa mga V3 series microprocessors ng highland barley. Sinusuportahan ang pamamahala ng mga karapatan sa pag-access ng hanggang 4 na pisikal na rehiyon. Kasama sa mga pahintulot ang read (R), write (W), at execute (X) na mga katangian, at ang haba ng protektadong lugar ay maaaring itakda sa 4 byte man lang. Palaging nagkakabisa ang module ng PMP sa user mode, ngunit maaari itong magkabisa nang opsyonal sa pamamagitan ng pag-lock ng (L) attribute sa machine mode.
- Kung lumalabag ang pag-access sa kasalukuyang limitasyon ng pahintulot, magti-trigger ito ng hindi normal na pagkagambala. Kasama sa module ng PMP ang apat na grupo ng 8-bit na configuration register (Isang grupo ng 32-bit) at apat na grupo ng mga address register, na lahat ay kailangang ma-access sa machine mode sa pamamagitan ng CSR na pagtuturo.
- Tandaan: Ang bilang ng mga protektadong lugar na sinusuportahan ng PMP sa iba't ibang mga modelo ng microprocessors ay maaaring iba, at ang bilang na sinusuportahan ng pmpcfg at pmpaddr registers ay iba rin. Tingnan ang Talahanayan 1-1 para sa mga detalye.
PMP Register Set
Ang listahan ng mga CSR register na sinusuportahan ng PMP module ng V3 microprocessor ay ipinapakita sa Table 4-1 sa ibaba.
Talahanayan 4-1 PMP module register set
| Pangalan | CSR address | Access | Paglalarawan | I-reset ang halaga |
| pmpcfg0 | 0x3A0 | MRW | Rehistro ng configuration ng PMP 0 | 0x00000000 |
| pmpaddr0 | 0x3B0 | MRW | rehistro ng PMP address 0 | 0xXXXXXXXXX |
| pmpaddr1 | 0x3B1 | MRW | rehistro ng PMP address 1 | 0xXXXXXXXXX |
| pmpaddr2 | 0x3B2 | MRW | rehistro ng PMP address 2 | 0xXXXXXXXXX |
| pmpaddr3 | 0x3B3 | MRW | rehistro ng PMP address 3 | 0xXXXXXXXXX |
pmp
Ang pmpcfg ay ang configuration register ng PMP unit, at ang bawat register ay naglalaman ng apat na 8-bit pumping field, na tumutugma sa configuration ng apat na rehiyon, at pumping ay kumakatawan sa configuration value ng rehiyon i. Ang format nito ay ipinapakita sa sumusunod na talahanayan 4-2.
Talahanayan 4-2 pmpcfg0 rehistro
Ang pmpcfg ay ginagamit upang i-configure ang lugar I at ang kahulugan ng bit nito ay inilarawan sa sumusunod na talahanayan 4-3.
Talahanayan 4-3 pmp
| bit | Pangalan | Paglalarawan |
| 7 | L | Ang pag-lock ay pinagana at maaaring i-unlock sa machine mode. 0: Hindi naka-lock;
1: I-lock ang nauugnay na rehistro. |
| [6:5] | – | Nakareserba |
| [4:3] | A | Pag-align ng address at pagpili ng hanay ng lugar ng proteksyon. 00: OFF (PMP off)
01: TOR (Top alignment protection) 10: NA4 (Fixed four-byte na proteksyon) 11: NAPOT (2(G+2) Byte protection, G≥1) |
| 2 | X | Naipapatupad na katangian. |
| 0: Walang pahintulot na isagawa;
1: Ipatupad ang pahintulot. |
||
|
1 |
W |
Naisusulat na katangian.
0: Walang pahintulot sa pagsulat 1: Pahintulot sa pagsulat. |
|
0 |
R |
Nababasang katangian
0: Walang pahintulot sa pagbasa 1: Pahintulot sa pagbabasa. |
pmpaddr
Ang rehistro ng pmpaddr ay ginagamit upang i-configure ang address ng lugar I. Ang karaniwang kahulugan ay nasa ilalim ng RV32 architecture, na kung saan ay ang pag-encode ng itaas na 32 bits ng isang 34-bit na pisikal na address, at ang format nito ay ipinapakita sa sumusunod na talahanayan 4-4 .
Ang buong pisikal na puwang ng address ng V3 microprocessor ay 4G, kaya ang itaas na dalawang bit ng rehistrong ito ay hindi ginagamit.
Talahanayan 4-4 pmpaddr 
Kapag NAPOT ang napili, ang mababang bit ng rehistro ng address ay ginagamit din upang ipahiwatig ang laki ng kasalukuyang lugar ng proteksyon, tulad ng ipinapakita sa sumusunod na talahanayan, kung saan ang 'y' ay isang bit ng rehistro.
Talahanayan 4-5 Talahanayan ng relasyon sa pagitan ng pagsasaayos ng PMP at rehistro ng address at protektadong lugar.
| pmpaddr | pmpcfg. A | Katugmang base address at laki |
| yyyy…yyyy | NA4 | Sa 'yy...yyyy00' bilang base address, protektado ang 4-byte area. |
| yyyy…yyy0 | NAPOT | Sa 'yy...yyy000' bilang base address, ang 8-byte na lugar ay protektado. |
| yyyy…yyy01 | NAPOT | Sa 'yy...yy0000' bilang base address, protektado ang 16-byte area. |
| yyyy...y011 | NAPOT | Sa 'yy...y00000' bilang base address, protektado ang 16-byte na lugar. |
| … | … | … |
| yyy01…111 | NAPOT | Sa 'y0…000000' bilang base address, ang 231-byte na lugar ay protektado. |
| yy011…111 | NAPOT | Protektahan ang buong 232-byte na lugar. |
Mekanismo ng Proteksyon
Ang X/W/R sa pmpcfg ay ginagamit upang itakda ang awtoridad sa proteksyon ng lugar I, at ang paglabag sa nauugnay na awtoridad ay magdudulot ng kaukulang pagbubukod:
- Kapag sinusubukang kumuha ng mga tagubilin sa lugar ng PMP nang walang awtoridad sa pagpapatupad, magdudulot ito ng pagbubukod sa error sa pag-access sa pag-fetch ng pagtuturo (mcause=1).
- Kapag sinusubukang magsulat ng data sa lugar ng PMP nang walang nakasulat na pahintulot, magdudulot ito ng error exception (mcause=7) sa access sa pagtuturo ng tindahan.
- Kapag sinusubukang magbasa ng data sa lugar ng PMP nang walang pahintulot sa pagbabasa, magdudulot ito ng abnormal na memory access error (mcause=5) para sa pagtuturo sa pagkarga.
Ang A sa pmpcfg ay ginagamit upang itakda ang saklaw ng proteksyon at pagkakahanay ng address ng rehiyon I, at upang protektahan ang memorya ng A_ADDR ≤ rehiyon < i > < B_ADDR (parehong A_ADDR at B_ADDR ay kinakailangang ihanay sa 4 na bait):
- Kung B _ ADDR–A_ADDR = = 22, ang NA4 mode ay pinagtibay;
- Kung B _ ADDR–A_ADDR = = 2(G+2), G≥1, at isang _ address ay 2(g+2), ang NAPOT na paraan ay pinagtibay;
- Kung hindi, ang TOP mode ay pinagtibay.
Talahanayan 4-6 Mga pamamaraan ng pagtutugma ng address ng PMP
| Isang halaga | Pangalan | Paglalarawan |
| 0b00 | NAKA-OFF | Walang lugar na protektahan |
| 0b01 | TOR | Nangungunang Aligned Area Protection.
Sa ilalim ng pmp pmpaddri = B_ADDR >> 2. Tandaan: Kung ang lugar 0 ng PMP ay na-configure bilang TOR mode (i=0), ang ibabang hangganan ng lugar ng proteksyon ay 0 address, ibig sabihin, 0 ≤ addr < pmpaddr0, lahat ay nasa loob ng pagtutugmang hanay. |
| 0b10 | NA4 | Nakapirming 4-byte na proteksyon sa lugar.
pmp |
| 0b11 | NAPOT | Protektahan ang 2(G+2) na rehiyon na may G ≥ 1, kapag ang A_ADDR ay nakahanay sa 2(G+2). pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1. |
- Ang L bit sa pmp
- Sinusuportahan ng mga microprocessor ng serye ng QingKe V3 ang proteksyon ng maraming mga zone. Kapag ang parehong operasyon ay tumugma sa maramihang mga zone sa parehong oras, ang zone na may mas maliit na bilang ay unang tumutugma.
System Timer (SysTick)
- Dinisenyo ang QingKe V3 series microprocessor na may 32-bit o 64-bit counter (SysTick) sa loob. Ang pinagmulan ng orasan nito ay ang system clock o ang 8-frequency division nito, at sinusuportahan lamang ng V3A ang 8-frequency division.
- Maaari itong magbigay ng time base, timing, at oras ng pagsukat para sa isang real-time na operating system. Ang iba't ibang uri ng mga rehistro na kasangkot sa timer ay may iba't ibang mga mapping address, tulad ng ipinapakita sa mga sumusunod na talahanayan 5-1 at 5-2.
Talahanayan 5-1 Listahan ng rehistro ng V3A SysTick
| Pangalan | Access address | Paglalarawan | I-reset ang halaga |
| STK_CTLR | 0xE000F000 | System counter control register | 0x00000000 |
| STK_CNTL | 0xE000F004 | System counter mababang rehistro | 0xXXXXXXXXX |
| STK_CNTH | 0xE000F008 | System counter high register
Tandaan: May bisa lamang para sa V3A. |
0xXXXXXXXXX |
| STK_CMPLR | 0xE000F00C | System count paghahambing halaga mababang rehistro | 0xXXXXXXXXX |
| STK_CMPHR | 0xE000F010 | System count paghahambing halaga mataas na rehistro
Tandaan: May bisa lamang para sa V3A. |
0xXXXXXXXXX |
Talahanayan 5-2 V3 SysTick na listahan ng rehistro ng iba pang mga modelo
| Pangalan | Access address | Paglalarawan | I-reset ang halaga |
| STK_CTLR | 0xE000F000 | System counter control register | 0x00000000 |
| STK_SR | 0xE000F004 | Rehistro ng status ng counter ng system | 0x00000000 |
| STK_CNTL | 0xE000F008 | Ang mababang rehistro ng system counter | 0xXXXXXXXXX |
| STK_CMPLR | 0xE000F010 | Bilangin ang halaga ng paghahambing na mababa ang rehistro | 0xXXXXXXXXX |
Ang bawat rehistro ay inilarawan nang detalyado tulad ng sumusunod.
System counter control register (STK_CTLR)
Talahanayan 5-3 Mga rehistro ng kontrol ng SysTick
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:5] | Nakareserba | RO | Nakareserba | 0 |
|
4 |
MODE |
RW |
Counting mode: 1: Count down;
0: Magbilang. Tandaan: Di-wasto para sa V3A. |
0 |
|
3 |
STRE |
RW |
Awtomatikong pag-reload na bilang ng paganahin ang bit:
1: Magbilang muli mula sa 0 pagkatapos magbilang hanggang sa halaga ng paghahambing, at magbilang muli mula sa halaga ng paghahambing pagkatapos magbilang pababa sa 0; 0: Ipagpatuloy ang pagbibilang pataas/pababa. Tandaan: Di-wasto para sa V3A. |
0 |
|
2 |
STCLK |
RW |
Counterclock source selection bit:
1: HCLK bilang time base; 0: HCLK/8 bilang time base. Tandaan: Ito ay hindi wasto para sa V3A, na sumusuporta lamang HCLK/8 bilang time base. |
0 |
| 1 | SITE | RW | Paganahin ng counter interrupt ang mga control bit: | 0 |
| 1: Paganahin ang counter interrupt; 0: I-disable ang counter interrupt.
Tandaan: Di-wasto para sa V3A. |
||||
| 0 | STE | RW | Ang system counter ay nagbibigay-daan sa isang control bit. 1: Paganahin ang system counter STK;
0: I-disable ang system counter STK at ang counter ay hihinto sa pagbibilang. |
0 |
System counter status register (STK_SR)
Ang rehistrong ito ay hindi nalalapat sa V3A.
Talahanayan 5-4 SysTick counter low register
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
|
31 |
SWIE |
RW |
Software interrupt trigger enable (SWI): 1: Trigger software interrupt;
0: I-off ang trigger. Tandaan: Dapat na i-clear ang bit na ito pagkatapos ipasok ang interrupt ng software, kung hindi, ito ay palaging magti-trigger. |
0 |
| [30:1] | Nakareserba | RO | Nakareserba | 0 |
|
0 |
CNTIF |
RW |
Bilangin ang bandila ng paghahambing, isulat ang 0 nang malinaw, isulat ang 1 ay hindi wasto:
1: Magbilang hanggang sa halaga ng paghahambing at magbilang pababa sa 0; 0: Ang paghahambing na halaga ay hindi naabot. |
0 |
System counter low register (STK_CNTL)
Talahanayan 5-5 SysTick counter low register
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:0] | CNTL | RW | Ang kasalukuyang halaga ng counter count ay 32 bits na mas mababa. Para sa V3A, ang rehistrong ito ay mababasa bilang 8-bit /16-bit
/32-bit, ngunit maaari lamang isulat bilang 8-bit, at iba pa ang mga modelo ay hindi limitado. |
0xXXXXXX XXX |
Tandaan: Irehistro ang STK_CNTL at irehistro ang STK_CNTH sa V3A nang magkasama ay bumubuo ng isang 64-bit system counter.
System counter high register (STK_CNTH)
Talahanayan 5-6 SysTick counter high register
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:0] | CNTH | RW | Ang kasalukuyang halaga ng counter count ay 32 bits na mas mataas. Ang rehistrong ito ay maaaring basahin ng 8-bit/16-bit/32-bit, ngunit maaari lamang isulat ng 8-bit.
Tandaan: May bisa lamang para sa V3A. |
0xXXXXXX XXX |
Tandaan: Irehistro ang STK_CNTL at irehistro ang STK_CNTH sa V3A nang magkasama ay bumubuo ng isang 64-bit system counter.
Mababang halaga ng paghahambing ng system count (STK_CMPLR)
Talahanayan 5-7 mababang rehistro ng halaga ng paghahambing ng SysTick
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:0] | CMPL | RW | Itakda ang counter comparison value sa 32 bits na mas mababa. Kapag pantay ang halaga ng CMP at halaga ng CNT, magti-trigger ang isang STK interrupt. Para sa V3A, ang rehistrong ito ay mababasa bilang 8-bit /16-bit /32-bit, ngunit maaari lamang
nakasulat bilang 8-bit, at hindi limitado ang iba pang mga modelo. |
0xXXXXXX XXX |
Tandaan: Ang rehistrong STK_CMPLR at ang rehistrong STK_CMPHR sa V3A na magkasama ay bumubuo ng 64-bit na halaga ng paghahambing ng counter.
Mataas na rehistro ng halaga ng paghahambing ng bilang ng system (STK_CMPHR)
Talahanayan 5-8 mataas na rehistro ng halaga ng paghahambing ng SysTick
| bit | Pangalan | Access | Paglalarawan | I-reset ang halaga |
| [31:0] | CMPH | RW | Itakda ang counter comparison value na 32 bits na mas mataas. Ang STK interrupt ay ma-trigger kapag ang CMP value at CNT value ay pantay.
Ang rehistrong ito ay maaaring basahin ng 8-bit/16-bit/32-bit, ngunit maaari lamang isulat ng 8-bit. Tandaan: May bisa lamang para sa V3A. |
0xXXXXXX XXX |
Tandaan: Ang rehistrong STK_CMPLR at ang rehistrong STK_CMPHR sa V3A na magkasama ay bumubuo ng 64-bit na halaga ng paghahambing ng counter.
Mga Setting ng Mababang-kapangyarihan ng Processor
- Sinusuportahan ng QingKe V3 series microprocessors ang sleep state sa pamamagitan ng WFI (Wait for Interrupt) na pagtuturo upang makamit ang mababang static na pagkonsumo ng kuryente.
- Kasama ang system control register (PFIC_SCTLR) ng PFIC, maaaring ipatupad ang iba't ibang Sleep mode at mga tagubilin sa WFE.
Ipasok ang Sleep
- Ang QingKe V3 series microprocessors ay maaaring matulog sa dalawang paraan, Wait for Interrupt (WFI) at Wait For Event (WFE). Ang paraan ng WFI ay nangangahulugan na ang microprocessor ay natutulog, naghihintay para sa isang interrupt na magising, at pagkatapos ay nagising sa kaukulang interrupt upang maisagawa. Ang paraan ng WFE ay nangangahulugan na ang microprocessor ay natutulog, naghihintay para sa isang kaganapan na magising, at gumising upang ipagpatuloy ang pagpapatupad ng dating nahintong daloy ng programa.
- Sinusuportahan ng karaniwang RISC-V ang pagtuturo ng WFI, at ang utos ng WFI ay maaaring direktang isagawa upang makapasok sa pagtulog sa pamamagitan ng paraan ng WFI. Para sa paraan ng WFE, ang WFITOWFE bit sa system control register na PFIC_SCTLR ay ginagamit upang kontrolin ang kasunod na mga utos ng WFI bilang pagpoproseso ng WFE upang makamit ang paraan ng WFE para makapasok sa pagtulog.
- Ang lalim ng pagtulog ay kinokontrol ayon sa SLEEPDEEP bit sa PFIC_SCTLR.
- Kung ang SLEEPDEEP sa PFIC_SCTLR register ay na-clear sa zero, ang microprocessor ay papasok sa Sleep mode at ang internal na unit clock ay pinapayagang i-off maliban sa SysTick at bahagi ng wake-up logic.
- Kung ang SLEEPDEEP sa PFIC_SCTLR register ay nakatakda, ang microprocessor ay papasok sa Deep sleep mode at lahat ng cell clock ay pinapayagang i-off.
- Kapag ang microprocessor ay nasa Debug mode, hindi posibleng pumasok sa anumang uri ng Sleep mode.
Matulog Wakeup
Ang QingKe V3 series microprocessors ay maaaring gisingin pagkatapos matulog dahil sa WFI at WFE sa mga sumusunod na paraan.
Matapos matulog ang paraan ng WFI, maaari itong magising sa pamamagitan ng
- Ang microprocessor ay maaaring gisingin ng interrupt source na tinugon ng interrupt controller. Pagkatapos magising, ang microprocessor ay unang nagsasagawa ng interrupt function.
- Ipasok ang Sleep mode, ang kahilingan sa pag-debug ay maaaring magising sa microprocessor at pumasok sa malalim na pagtulog, ang kahilingan sa pag-debug ay hindi magising sa microprocessor.
Matapos matulog ang paraan ng WFE, ang microprocessor ay maaaring gisingin ng mga sumusunod.
- Panloob o panlabas na mga kaganapan, kapag hindi na kailangang i-configure ang interrupt controller, gumising at magpatuloy na isagawa ang programa.
- Kung pinagana ang isang interrupt source, gigisingin ang microprocessor kapag nabuo ang isang interrupt, at pagkatapos magising, ipapatupad muna ng microprocessor ang interrupt function.
- Kung ang SEVONPEND bit sa PFIC_SCTLR ay na-configure, hindi pinapagana ng interrupt controller ang interrupt, ngunit kapag nabuo ang isang bagong interrupt na nakabinbing signal (ang dating nabuong nakabinbing signal ay hindi magkakabisa), maaari din nitong magising ang microprocessor, at ang Ang kaukulang interrupt na nakabinbing flag ay kailangang i-clear nang manu-mano pagkatapos magising.
- Ang paghiling sa pag-debug ng Enter Sleep mode ay maaaring magpagising sa microprocessor at pumasok sa malalim na pagtulog, hindi magising ng kahilingan sa pag-debug ang microprocessor.
- Bilang karagdagan, ang estado ng microprocessor pagkatapos ng wake-up ay maaaring kontrolin sa pamamagitan ng pag-configure ng SLEEPONEXIT bit sa PFIC_SCTLR.
- Ang SLEEPONEXIT ay nakatakda at ang huling antas ng interrupt return instruction (mret) ay magti-trigger sa WFI mode sleep.
Ang SLEEPONEXIT ay na-clear nang walang epekto.
Ang iba't ibang produkto ng MCU na nilagyan ng mga V3 series na microprocessors ay maaaring gumamit ng iba't ibang sleep mode, i-off ang iba't ibang peripheral at orasan, ipatupad ang iba't ibang mga patakaran sa pamamahala ng kuryente at mga pamamaraan ng wake-up ayon sa iba't ibang configuration ng PFIC_SCTLR, at mapagtanto ang iba't ibang low-power mode.
Suporta sa Pag-debug
- Ang mga microprocessor ng serye ng QingKe V3 ay may kasamang hardware debug module na sumusuporta sa mga kumplikadong pagpapatakbo ng pag-debug. Kapag nasuspinde ang microprocessor, maa-access ng module ng debug ang mga GPR, CSR, Memory, mga external na device, atbp. ng microprocessor sa pamamagitan ng mga abstract na command, mga tagubilin sa pag-deploy ng buffer ng program, atbp. Maaaring suspindihin at ipagpatuloy ng module ng debug ang operasyon ng microprocessor.
- Ang debug module ay sumusunod sa RISC-V External Debug Support Version0.13.2 na detalye, ang detalyadong dokumentasyon ay maaaring ma-download mula sa RISC-V International website.
Debug Module
- Kasama sa debug module sa loob ng microprocessor, na may kakayahang magsagawa ng mga pagpapatakbo ng debug na ibinigay ng debug host.
- Access sa mga rehistro sa pamamagitan ng debug interface
- I-reset, suspindihin, at ipagpatuloy ang microprocessor sa pamamagitan ng interface ng debug
- Magbasa at magsulat ng memorya, mga rehistro ng pagtuturo, at mga panlabas na device sa pamamagitan ng interface ng pag-debug
- Mag-deploy ng maraming arbitrary na tagubilin sa pamamagitan ng interface ng debug
- Magtakda ng mga breakpoint ng software sa pamamagitan ng interface ng debug
- Magtakda ng mga breakpoint ng hardware sa pamamagitan ng interface ng debug
- Suportahan ang abstract command na auto-execution
- Suportahan ang single-step na pag-debug
- Tandaan: Hindi sinusuportahan ng V3A ang mga breakpoint ng hardware, sinusuportahan ng mga breakpoint ng V3B hardware ang pagtutugma ng address ng pagtuturo, at sinusuportahan ng mga breakpoint ng V3C hardware ang address ng pagtuturo at pagtutugma ng address ng data.
- Ang mga panloob na rehistro ng debugging module ay gumagamit ng 7-bit na address code, at ang mga sumusunod na rehistro ay ipinatupad sa loob ng QingKe V3 series microprocessors.
Talahanayan 7-1 Listahan ng rehistro ng module ng pag-debug
| Pangalan | Access address | Paglalarawan |
| datos0 | 0x04 | Data register 0, ay maaaring gamitin para sa pansamantalang imbakan ng data |
| datos1 | 0x05 | Data register 1, ay maaaring gamitin para sa pansamantalang imbakan ng data |
| decontrol | 0x10 | Debug module control register |
| dmstatus | 0x11 | Debug module status register |
| hartinfo | 0x12 | Rehistro ng katayuan ng microprocessor |
| mga abstract | 0x16 | Pagrehistro ng katayuan ng abstract na command |
| utos | 0x17 | Abstract na rehistro ng command |
| abstract auto | 0x18 | Abstract na command auto-execution |
| progbuf0-7 | 0x20-0x27 | Nagrerehistro ang cache ng tagubilin 0-7 |
| haltsum0 | 0x40 | I-pause ang rehistro ng katayuan |
- Makokontrol ng host ng debug ang pagsususpinde, ipagpatuloy, pag-reset, atbp. ng microprocessor sa pamamagitan ng pag-configure sa rehistro ng dekontrol. Ang pamantayang RISC-V ay tumutukoy sa tatlong uri ng abstract na mga utos: access register, mabilis na access, at access memory.
- Sinusuportahan lamang ng QingKe V3A microprocessor ang pag-access sa pagrehistro, sinusuportahan ng ibang mga modelo ang pagrehistro at pag-access sa memorya, ngunit hindi ang mabilis na pag-access. Ang pag-access sa mga rehistro (GPR, CSR) at patuloy na pag-access sa memorya ay maaaring maisakatuparan sa pamamagitan ng mga abstract na utos.
- Ang debug module ay nagpapatupad ng 8 instruction cache registers progbuf0-7, at ang debug host ay maaaring mag-cache ng maramihang mga tagubilin (na maaaring i-compress na mga tagubilin) sa buffer at mapipiling ipagpatuloy ang pagpapatupad ng mga tagubilin sa mga instruction cache registers pagkatapos isagawa ang abstract command o isagawa ang mga naka-cache na tagubilin nang direkta.
- Tandaan na ang huling pagtuturo sa mga programa ay kailangang "ebreak" o "c.ebreak" na pagtuturo. Ang pag-access sa imbakan, peripheral, atbp. ay posible rin sa pamamagitan ng mga abstract na command at mga tagubilin na naka-cache sa mga programa.
- Ang bawat rehistro ay inilarawan nang detalyado tulad ng sumusunod.
- Rehistro ng data 0 (data0)
Talahanayan 7-2 kahulugan ng rehistro ng data
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | datos0 | RW | Data register 0, ginagamit para sa pansamantalang pag-iimbak ng data | 0 |
Rehistro ng data 1 (data1)
Talahanayan 7-3 kahulugan ng rehistro ng data1
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | datos1 | RW | Data register 1, ginagamit para sa pansamantalang pag-iimbak ng data | 0 |
Debug module control register (decontrol)
Kinokontrol ng register na ito ang pause, reset, at resume ng microprocessor. Ang debug host ay nagsusulat ng data sa kaukulang field para makamit ang pause (haltreq), i-reset (ndmreset), ipagpatuloy (resumereq). Ilarawan mo ang mga sumusunod.
Talahanayan 7-4 decontrol rehistro kahulugan
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| 31 | haltreq | WO | 0: I-clear ang kahilingan sa pag-pause
1: Magpadala ng kahilingan sa pag-pause |
0 |
| 30 | resumereq | W1 | 0: Di-wasto
1: Ibalik ang kasalukuyang microprocessor Tandaan: Ang write 1 ay wasto at ang hardware ay na-clear pagkatapos na mabawi ang microprocessor |
0 |
| 29 | Nakareserba | RO | Nakareserba | 0 |
| 28 | ackhavereset | W1 | 0: Di-wasto
1: I-clear ang harvest status bit ng microprocessor |
0 |
| [27:2] | Nakareserba | RO | Nakareserba | 0 |
| 1 | ndmreset | RW | 0: I-clear ang pag-reset
1: I-reset ang buong system maliban sa debug module |
0 |
| 0 | i-deactivate | RW | 0: I-reset ang debug module
1: Ang Debug module ay gumagana nang maayos |
0 |
Debug module status register (dm status)
- Ang rehistrong ito ay ginagamit upang ipahiwatig ang katayuan ng debug module at ito ay isang read-only na rehistro na may sumusunod na paglalarawan ng bawat bit.
mesa 7-5 kahulugan ng dmstatus register
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:20] | Nakareserba | RO | Nakareserba | 0 |
| 19 | na-reset lahat | RO | 0: Di-wasto
1: Pag-reset ng microprocessor |
0 |
| 18 | anyhavereset | RO | 0: Di-wasto
1: Pag-reset ng microprocessor |
0 |
| 17 | allresumeck | RO | 0: Di-wasto
1: Pag-reset ng microprocessor |
0 |
| 16 | anyresumeck | RO | 0: Di-wasto
1: Pag-reset ng microprocessor |
0 |
| [15:14] | Nakareserba | RO | Nakareserba | 0 |
| 13 | alluvial | RO | 0: Di-wasto
1: Ang microprocessor ay hindi magagamit |
0 |
| 12 | anumang pakinabang | RO | 0: Di-wasto
1: Ang microprocessor ay hindi magagamit |
0 |
| 11 | lahat tumatakbo | RO | 0: Di-wasto
1: Ang microprocessor ay tumatakbo |
0 |
| 10 | anumang pagtakbo | RO | 0: Di-wasto
1: Ang microprocessor ay tumatakbo |
0 |
| 9 | natigil | RO | 0: Di-wasto
1: Nakasuspinde ang microprocessor |
0 |
| 8 | anumang itinigil | RO | 0: Di-wasto
1: Wala sa suspensyon ang Microprocessor |
0 |
| 7 | napatotohanan |
RO |
0: Kinakailangan ang pagpapatunay bago gamitin ang debug module
1: Na-certify na ang debugging module |
0x1 |
| [6:4] | Nakareserba | RO | Nakareserba | 0 |
| [3:0] | bersyon | RO | bersyon 0010 ng arkitektura ng suporta ng system sa pag-debug: V0.13 | 0x2 |
Microprocessor status register (hartinfo)
Ang rehistrong ito ay ginagamit upang magbigay ng impormasyon tungkol sa microprocessor sa debug host at isang read-only na rehistro na may bawat bit na inilarawan bilang mga sumusunod.
Talahanayan 7-6 kahulugan ng rehistro ng hartinfo
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:24] | Nakareserba | RO | Nakareserba | 0 |
| [23:20] | scratch | RO | Bilang ng mga scratch register na sinusuportahan | 0x3 |
| [19:17] | Nakareserba | RO | Nakareserba | 0 |
| 16 | DataAccess | RO | 0: Ang rehistro ng data ay nakamapa sa CSR address
1: Ang data register ay nakamapa sa memory address |
0x1 |
| [15:12] | laki ng data | RO | Bilang ng mga rehistro ng data | 0x2 |
| [11:0] | magdagdag ng data |
RO |
Ang offset na address ng data register data0,
na ang base address ay 0xe0000000, ay napapailalim sa partikular na pagbabasa. |
0xXXX |
Abstract na command control at status registers (mga abstract)
Ang rehistrong ito ay ginagamit upang ipahiwatig ang pagpapatupad ng abstract command. Maaaring basahin ng debug host ang rehistrong ito upang malaman kung ang huling abstract na utos ay naisakatuparan o hindi at maaaring suriin kung ang isang error ay nabuo sa panahon ng pagpapatupad ng abstract na utos at ang uri ng error, na inilarawan nang detalyado tulad ng sumusunod.
Talahanayan 7-7 ang mga abstract ay nagrerehistro ng mga kahulugan
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:29] | Nakareserba | RO | Nakareserba | 0 |
| [28:24] | progbufsize | RO | Isinasaad ang bilang ng program buffer program
mga rehistro ng cache |
0x8 |
| [23:13] | Nakareserba | RO | Nakareserba | 0 |
| 12 | abala | RO | 0: Walang abstract na utos ang isinasagawa
1: May mga abstract command na isinasagawa Tandaan: Pagkatapos ng execution, na-clear ang hardware. |
0 |
| 11 | Nakareserba | RO | Nakareserba | 0 |
| [10:8] | cmder | RW | Uri ng error sa abstract na command 000: Walang error
001: Abstract na pagpapatupad ng command para magsulat sa command, abstracts, abstract auto registers o magbasa at magsulat sa data at progbuf registers 010: Hindi sinusuportahan ang kasalukuyang abstract na utos 011: Pagpapatupad ng abstract na utos na may pagbubukod 100: Ang microprocessor ay hindi nasuspinde o hindi magagamit at hindi maaaring magsagawa ng mga abstract na utos 101: Error sa bus 110: Parity bit error sa panahon ng komunikasyon 111: Iba pang mga error Tandaan: Para sa bit writing 1 ay ginagamit upang i-clear ang zero. |
0 |
| [7:4] | Nakareserba | RO | Nakareserba | 0 |
| [3:0] | diskwento | RO | Bilang ng mga rehistro ng data | 0x2 |
- Maaaring ma-access ng mga host ng pag-debug ang mga GPR, CSR register, at memory sa pamamagitan ng pagsusulat ng iba't ibang mga value ng configuration sa abstract command register.
- Kapag ina-access ang mga rehistro, ang command register bits ay tinukoy bilang mga sumusunod.
- Talahanayan 7-8 Kahulugan ng command register kapag ina-access ang mga register
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:24] | uri ng cmd | WO | Abstract na uri ng command 0: Access register;
1: Mabilis na pag-access (hindi suportado); 2: Access sa memorya. |
0 |
| 23 | Nakareserba | WO | Nakareserba | 0 |
| [22:20] | aarsize | WO | I-access ang rehistro ng data bit width 000: 8-bit
001: 16-bit 010: 32-bit |
0 |
| 011: 64-bit (hindi suportado) 100: 128-bit (hindi suportado)
Tandaan: Kapag ina-access ang mga floating-point na rehistro Mga FPR, 32-bit na access lang ang sinusuportahan. |
||||
| 19 | aarpostincrement | WO | 0: Walang epekto
1: Awtomatikong taasan ang halaga ng regno pagkatapos ma-access ang rehistro |
0 |
| 18 | post exec | WO | 0: Walang epekto
1:Ipatupad ang abstract na utos at pagkatapos ay isagawa ang utos sa progbuf |
0 |
| 17 | paglipat | WO | 0: Huwag isagawa ang operasyon na tinukoy sa pamamagitan ng pagsulat
1: Isagawa ang pagmamanipula na tinukoy sa pamamagitan ng pagsulat |
0 |
| 16 | sumulat | WO | 0: Kopyahin ang data mula sa tinukoy na rehistro sa data0 1: Kopyahin ang data mula sa data0 rehistro sa tinukoy na rehistro |
0 |
| [15:0] | regno | WO | Tukuyin ang mga rehistro ng access na 0x0000-0x0fff ay mga CSR 0x1000-0x101f ay mga GPR |
0 |
Kapag ina-access ang memorya, ang mga bit sa command register ay tinukoy bilang mga sumusunod.
Talahanayan 7-9 Kahulugan ng command Magrehistro kapag nag-access ng Memory
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:24] | uri ng cmd | WO | Abstract na uri ng command 0: Access register;
1: Mabilis na pag-access (hindi suportado); 2: I-access ang memorya. |
0 |
| 23 | aamvirtual | WO | 0: I-access ang pisikal na address;
1: I-access ang virtual na address. |
0 |
| [22:20] | laki ng braso | WO | I-access ang memory data bit width 000: 8-bit;
001: 16-bit; 010: 32-bit; 011: 64-bit (hindi suportado); 100: 128-bit (hindi suportado); |
0 |
| 19 | aamppagkukunwari | WO | 0: Walang impluwensya;
1: Matapos matagumpay na ma-access ang memorya, dagdagan ang address na nakaimbak sa data1 register sa pamamagitan ng bilang ng mga byte na tumutugma sa bit width na na-configure ayon sa laki ng braso. Aamsize=0, na-access ng byte, data1 plus 1. Aamsize=1, na-access ng kalahating salita, data1 plus 2. aamsize=2, na-access ng bit, data1 plus 4. |
0 |
| 18 | post exec | WO | 0: Walang impluwensya;
1: Ipatupad ang utos sa progbuf pagkatapos isagawa ang abstract na utos. |
0 |
| 17 | Reserve | RO | Nakareserba | 0 |
|
16 |
sumulat |
WO |
0: Basahin ang data mula sa address na tinukoy ng data1 hanggang data0
1: Isulat ang data sa data0 sa address na tinukoy ni datos1. |
0 |
|
[15:14] |
tukoy sa target |
WO |
Kahulugan ng mode ng pagbasa at pagsulat Sumulat:
00, 01: Direktang sumulat sa memorya; 10: Matapos ang data sa data0 ay O kasama ang mga bits ng data sa memorya, ang resulta ay isusulat sa memorya (Ang pag-access sa salita lamang ang sinusuportahan). 11: Matapos isama ang data sa data0 kasama ang mga bits ng data sa memorya, isulat ang resulta sa memorya (Ang access sa salita lamang ang sinusuportahan). Basahin: 00, 01, 10, 11: Basahin ang 0 nang direkta mula sa memorya. |
0 |
| [13:0] | Reserve | RO | Nakareserba |
Abstract na command na awtomatikong execution register (abstract auto)
Ang rehistrong ito ay ginagamit upang i-configure ang debugging module. Kapag nagbabasa at nagsusulat ng progbufx at data ng debugging module, ang abstract command ay maaaring isagawa muli.
Ang paglalarawan ng rehistrong ito ay ang mga sumusunod:
Talahanayan 7-10 abstract auto register kahulugan
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:16] | autoexecprogbuf | RW | Kung ang isang bit ay nakatakda, ang kaukulang pagbabasa at pagsulat ng progbufx ay magiging sanhi ng abstract na utos sa rehistro ng command upang maisagawa muli.
Tandaan: Ang serye ng V3 ay dinisenyo na may 8 progbuf, katumbas ng bits [23:16]. |
0 |
| [15:12] | Reserve | RO | Nakareserba | 0 |
| [11:0] | autoexecdata |
RW |
Kung ang isang bit ay nakatakda sa 1, ang kaukulang pagbabasa at pagsulat ng rehistro ng data ay magiging sanhi ng abstract na utos sa rehistro ng Command upang maisakatuparan muli.
Tandaan: Ang serye ng V3 ay dinisenyo na may dalawang data mga rehistro, na tumutugma sa mga bit [1:0]. |
0 |
Rehistro ng cache ng tagubilin (progbufx)
Ang rehistrong ito ay ginagamit upang mag-imbak ng anumang pagtuturo, at i-deploy ang kaukulang operasyon, kabilang ang 8, na kailangang bigyang pansin ang huling pagpapatupad na kailangang "break" o "c.ebreak".
Talahanayan 7-11 progbuf register definition
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | progbuf | RW | Pag-encode ng pagtuturo para sa mga pagpapatakbo ng cache, na
maaaring may kasamang mga tagubilin sa compression |
0 |
I-pause ang rehistro ng katayuan (haltsum0)
Ang rehistrong ito ay ginagamit upang ipahiwatig kung ang microprocessor ay nasuspinde o hindi. Ang bawat bit ay nagpapahiwatig ng suspendido na katayuan ng isang microprocessor, at kapag mayroon lamang isang core, tanging ang pinakamababang bit ng register na ito ang ginagamit upang ipahiwatig ito.
Talahanayan 7-12 kahulugan ng rehistro ng haltsum0
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:1] | Nakareserba | RO | Nakareserba | 0 |
| 0 | haltsum0 | RO | 0: Normal na gumagana ang microprocessor
1: Huminto ang microprocessor |
0 |
- Bilang karagdagan sa mga nabanggit na register ng debug module, ang debug function ay nagsasangkot din ng ilang CSR register, pangunahin ang debug control at status register dcsr at ang debug instruction pointer dpc, na inilalarawan nang detalyado tulad ng sumusunod.
- Debug control at status register (dcsr)
Talahanayan 7-13 kahulugan ng dcsr register
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:28] | xdebugver | DRO | 0000: Hindi sinusuportahan ang panlabas na pag-debug 0100: Suportahan ang karaniwang panlabas na pag-debug
1111: Ang panlabas na pag-debug ay sinusuportahan, ngunit hindi nakakatugon ang pagtutukoy |
0x4 |
| [27:16] | Nakareserba | DRO | Nakareserba | 0 |
| 15 | break | DRW | 0: Ang break command sa machine mode ay kumikilos tulad ng inilarawan sa pribilehiyo file
1: Ang break command sa machine mode ay maaaring pumasok sa debug mode |
0 |
| [14:13] | Nakareserba | DRO | Nakareserba | 0 |
| 12 | hiwalayan |
DRW |
0: Ang break na command sa user mode ay kumikilos tulad ng inilarawan sa pribilehiyo file
1: Ang break command sa user mode ay maaaring pumasok sa debug mode |
0 |
| 11 | hakbang | DRW | 0: Ang mga interrupt ay hindi pinagana sa ilalim ng single-step na pag-debug
1: I-enable ang mga interrupt sa ilalim ng single-step na pag-debug |
0 |
| 10 | Nakareserba | DRO | Nakareserba | 0 |
| 9 | huminto ang oras | DRW | 0: Tumatakbo ang timer ng system sa Debug mode
1: Humihinto ang timer ng system sa Debug mode |
0 |
| [8:6] | dahilan | DRO | Mga dahilan para sa pagpasok ng pag-debug
001: Ang pagpasok ng pag-debug sa anyo ng break command (priyoridad 3) 010: Ang pagpasok ng pag-debug sa anyo ng isang trigger module (priyoridad 4, ang pinakamataas) 011: Paglalagay ng pag-debug sa anyo ng kahilingan sa pag-pause (priyoridad 1) 100: pag-debug sa anyo ng single-step na pag-debug (priyoridad 0, ang pinakamababa) |
0 |
| 101: direktang ipasok ang debug mode pagkatapos i-reset ang microprocessor (priyoridad 2) Iba pa: Nakalaan | ||||
| [5:3] | Nakareserba | DRO | Nakareserba | 0 |
| 2 | hakbang | DRW | 0: I-off ang single-step na pag-debug
1: Paganahin ang single-step na pag-debug |
0 |
| [1:0] | Nakaraan | DRW | Privilege mode 00: User mode
01: Supervisor mode (hindi suportado) 10: Nakalaan 11: Machine mode Tandaan: I-record ang privileged mode kapag pumapasok sa debug mode, maaaring baguhin ng debugger ang value na ito para baguhin ang privileged mode kapag lumalabas sa debug |
0 |
Debug mode program pointer (DPC)
- Ang rehistrong ito ay ginagamit upang iimbak ang address ng susunod na pagtuturo na isasagawa pagkatapos na pumasok ang microprocessor sa debug mode, at ang halaga nito ay ina-update na may iba't ibang panuntunan depende sa dahilan ng pagpasok ng debug. Ang dpc register ay inilarawan nang detalyado tulad ng sumusunod.
Talahanayan 7-14 mga kahulugan ng rehistro ng dpc
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | DPC | DRW | Address ng pagtuturo | 0 |
Ang mga patakaran para sa pag-update ng mga rehistro ay ipinapakita sa sumusunod na talahanayan.
Talahanayan 7-15 mga panuntunan sa pag-update ng dpc
| Ipasok ang paraan ng pag-debug | Mga panuntunan sa pag-update ng dpc |
| break | Address ng pagtuturo ng Ebreak |
| isang hakbang | Address ng pagtuturo ng susunod na pagtuturo ng kasalukuyang pagtuturo |
| trigger module | Pansamantalang hindi suportado |
| huminto sa kahilingan | Address ng susunod na pagtuturo na isasagawa kapag pumapasok sa Debug |
Interface ng Pag-debug
- Iba sa karaniwang JTAG interface na tinukoy ng RISC-V, ang QingKe V3 series microprocessor ay gumagamit ng 1- isang wire/2-wire serial debug interface at sumusunod sa WCH debug interface protocol V1.0.
- Ang interface ng debug ay responsable para sa komunikasyon sa pagitan ng debug host at ng debug module at napagtanto ang read/write operation ng debug host sa mga debug module registers.
- Dinisenyo ng WCH ang WCH_Link at open source ang eskematiko at binary ng programa nito files, na maaaring magamit para sa pag-debug ng lahat ng microprocessors ng RISC-V architecture.
- Sumangguni sa WCH Debug Protocol Manual para sa mga partikular na debug interface protocol.
Listahan ng CSR Register
- Tinutukoy ng arkitektura ng RISC-V ang ilang Control and Status Registers (CSRs) para sa pagkontrol at pagtatala ng operating status ng microprocessor.
- Ang ilan sa mga CSR ay ipinakilala sa nakaraang seksyon, at ang kabanatang ito ay magdedetalye ng mga CSR register na ipinatupad sa mga microprocessor ng serye ng QingKe V3.
Listahan ng CSR Register
Talahanayan 8-1 Listahan ng Microprocessor CSR Registers
| Uri | Pangalan | CSR Address | Access | Paglalarawan |
| RISC-V
Karaniwang CSR |
marchid | 0xF12 | MRO | Rehistro ng numero ng arkitektura |
| mimpid | 0xF13 | MRO | Rehistro ng numero ng pagpapatupad ng hardware | |
| mstatus | 0x300 | MRW | Pagrehistro sa katayuan | |
| misa | 0x301 | MRW | Rehistro ng set ng pagtuturo ng hardware | |
| mtvec | 0x305 | MRW | Exception base address register | |
| mscratch | 0x340 | MRW | Machine mode stagsa pagpaparehistro | |
| MEPC | 0x341 | MRW | Exception program pointer register | |
| mcause | 0x342 | MRW | Exception cause register | |
| mtval | 0x343 | MRW | Rehistro ng halaga ng pagbubukod | |
| pmpcfg | 0x3A0+i | MRW | Rehistro ng pagsasaayos ng PMP | |
| pmpaddr | 0x3B0+i | MRW | rehistro ng PMP address | |
| tselect | 0x7A0 | MRW | I-debug ang rehistro ng pagpili ng trigger | |
| tdata1 | 0x7A1 | MRW | Debug trigger data register 1 | |
| tdata2 | 0x7A2 | MRW | Debug trigger data register 2 | |
| dcsr | 0x7B0 | DRW | Kontrol sa pag-debug at mga rehistro ng katayuan | |
| dpc | 0x7B1 | DRW | Debug mode program pointer register | |
| dscratch0 | 0x7B2 | DRW | Debug mode stagsa rehistro 0 | |
| dscratch1 | 0x7B3 | DRW | Debug mode stagsa rehistro 1 | |
|
Tinukoy ng vendor ang CSR |
gintenr | 0x800 | URW | Global interrupt enable register |
| intsyscr | 0x804 | URW | Abalahin ang rehistro ng control system | |
| corecfgr | 0xBC0 | MRW | Rehistro ng pagsasaayos ng microprocessor | |
| inestcr | 0xBC1 | MRW | Abalahin ang nested control register |
RISC-V Standard CSR Registers
- Register ng numero ng arkitektura (marchid)
- Ang register na ito ay isang read-only na register upang isaad ang kasalukuyang microprocessor hardware architecture number, na pangunahing binubuo ng vendor code, architecture code, series code, at version code. Ang bawat isa sa kanila ay tinukoy bilang mga sumusunod.
Talahanayan 8-2 kahulugan ng rehistro ng marchid
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| 31 | Nakareserba | MRO | Nakareserba | 1 |
| [30:26] | Nagtitinda0 | MRO | Code ng tagagawa 0
Naayos sa letrang "W" code |
0x17 |
| [25:21] | Nagtitinda1 | MRO | Code ng tagagawa1
Naayos sa letrang "C" code |
0x03 |
| [20:16] | Nagtitinda2 | MRO | Code ng tagagawa 2
Naayos sa letrang "H" code |
0x08 |
| 15 | Nakareserba | MRO | Nakareserba | 1 |
| [14:10] | Arch | MRO | Code ng arkitektura | 0x16 |
| Ang arkitektura ng RISC-V ay naayos sa letrang "V" code | ||||
| [9:5] | Serial | MRO | Code ng serye
QingKe V3 series, naayos sa numerong "3" |
0x03 |
| [4:0] | Bersyon | MRO | Code ng bersyon
Maaaring ang bersyon na "A", "B", "C" at iba pang mga titik ng code |
x |
Ang numero ng tagagawa at numero ng bersyon ay alphabetic, at ang numero ng serye ay numeric. Ang coding table ng mga titik ay ipinapakita sa sumusunod na talahanayan.
Talahanayan 8-3 Talahanayan ng Alphabetic Mapping
| 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 |
- Kabilang sa mga ito, ang QingKe V3A microprocessor, ang rehistro ay bumabasa pabalik sa 0.
Register ng numero ng pagpapatupad ng hardware (limpid)
- Ang rehistrong ito ay pangunahing binubuo ng mga vendor code, ang bawat isa ay tinukoy bilang mga sumusunod.
Talahanayan 8-4 kahulugan ng limpid register
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| 31 | Nakareserba | MRO | Nakareserba | 1 |
| [30:26] | Nagtitinda0 | MRO | Code ng tagagawa 0
Naayos sa letrang "W" code |
0x17 |
| [25:21] | Nagtitinda1 | MRO | Code ng tagagawa1
Naayos sa letrang "C" code |
0x03 |
| [20:16] | Nagtitinda2 | MRO | Code ng tagagawa 2
Naayos sa letrang "H" code |
0x08 |
| 15 | Nakareserba | MRO | Nakareserba | 1 |
| [14:8] | Nakareserba | MRO | Nakareserba | 0 |
| [7:4] | menor de edad | MRO | Subversion number | 0xX |
| [3:0] | Major | MR0 | Pangunahing numero ng bersyon | 0xX |
- Mababasa ang rehistrong ito sa anumang pagpapatupad ng makina, at sa processor ng serye ng QingKe V3A, bumabalik sa zero ang rehistrong ito.
Register ng status ng machine mode (mstatus)
- Ang rehistrong ito ay bahagyang inilarawan sa nakaraang seksyon, at ang mga tao nito ay nakaposisyon bilang mga sumusunod.
Talahanayan 8-5 kahulugan ng mstatus register
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:13] | Nakareserba | MRO | Nakareserba | 0 |
| [12:11] | MPP | MRW | Privileged mode bago pumasok sa break | 0 |
| [10:8] | Nakareserba | MRO | Nakareserba | 0 |
| 7 | MPIE | MRW | Interrupt enable state bago magpasok ng interrupt | 0 |
| [6:4] | Nakareserba | MRO | Nakareserba | 0 |
| 3 | MIE | MRW | Paganahin ang machine mode interrupt | 0 |
| [2:0] | Nakareserba | MRO | Nakareserba | 0 |
- Ang field ng MPP ay ginagamit upang i-save ang privileged mode bago ipasok ang exception o interrupt at ginagamit upang ibalik ang privileged mode pagkatapos lumabas sa exception o interrupt. Ang MIE ay ang global interrupt enable bit, at kapag pumapasok sa exception o interrupt, ang halaga ng MPIE ay ina-update sa halaga ng MIE, at dapat tandaan na sa QingKe V3 series microprocessors, ang MIE ay hindi ia-update sa 0 bago ang huling antas ng mga nested interrupts upang matiyak na ang interrupt nesting sa Machine mode ay patuloy na isasagawa. Kapag ang isang exception o interrupt ay lumabas, ang microprocessor ay babalik sa Machine mode na na-save ng MPP, at ang MIE ay ibabalik sa MPIE na halaga.
- Sinusuportahan ng QingKe V3 microprocessor ang Machine mode at User mode, kung kailangan mong gawin lamang ang microprocessor sa Machine mode, maaari mong itakda ang MPP sa 0x3 sa pagsisimula ng boot file, ibig sabihin, pagkatapos bumalik, ito ay palaging mananatili sa Machine mode.
Register ng set ng pagtuturo ng hardware (misa)
- Ang rehistrong ito ay ginagamit upang ipahiwatig ang arkitektura ng microprocessor at ang suportadong mga extension ng set ng pagtuturo, na ang bawat isa ay inilarawan bilang mga sumusunod.
Talahanayan 8-6 kahulugan ng rehistro ng misa
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:30] | MXL | MRO | Ang haba ng machine word ay 1:32
2:64 3:128 |
1 |
| [29:26] | Nakareserba | MRO | Nakareserba | 0 |
| [25:0] | Mga extension | MRO | Mga extension ng set ng pagtuturo | x |
- Ang MXL ay ginagamit upang ipahiwatig ang haba ng salita ng microprocessor, ang QingKe V3 ay 32-bit microprocessor, at ang domain ay nakatakda sa 1.
- Ang mga extension ay ginagamit upang ipahiwatig na ang microprocessor ay sumusuporta sa pinalawig na mga detalye ng set ng pagtuturo, ang bawat isa ay nagpapahiwatig ng isang klase ng mga extension, ang detalyadong paglalarawan nito ay ipinapakita sa sumusunod na talahanayan.
Talahanayan 8-7 Mga Detalye ng Extension ng Instruction Set
| bit | Pangalan | Paglalarawan |
| 0 | A | Atomic extension |
| 1 | B | Pansamantalang nakalaan para sa extension ng Bit-Manipulation |
| 2 | C | Naka-compress na extension |
| 3 | D | Double-precision floating-point extension |
| 4 | E | RV32E base ISA |
| 5 | F | Single-precision floating-point extension |
| 6 | G | May mga karagdagang karaniwang extension |
| 7 | H | Extension ng hypervisor |
| 8 | I | RV32I/64I/128I base ISA |
| 9 | J | Pansamantalang nakalaan para sa extension ng Dynamically Translated Languages |
| 10 | K | Nakareserba |
| 11 | L | Pansamantalang nakalaan para sa extension ng Decimal Floating-Point |
| 12 | M | Integer Multiply/Divide extension |
| 13 | N | Sinusuportahan ang mga interrupt sa antas ng user |
| 14 | O | Nakareserba |
| 15 | P | Pansamantalang nakalaan para sa Packed-SIMD extension |
| 16 | Q | Quad-precision floating-point extension |
| 17 | R | Nakareserba |
| 18 | S | Ipinatupad ang supervisor mode |
| 19 | T | Pansamantalang nakalaan para sa extension ng Transactional Memory |
| 20 | U | Ipinatupad ang user mode |
| 21 | V | Pansamantalang nakalaan para sa extension ng Vector |
| 22 | W | Nakareserba |
| 23 | X | Naroroon ang mga hindi karaniwang extension |
| 24 | Y | Nakareserba |
| 25 | Z | Nakareserba |
- Para kay example, para sa QingKe V3A microprocessor, ang halaga ng rehistro ay 0x401001105, na nangangahulugan na ang suportadong arkitektura ng set ng pagtuturo ay RV32IMAC, at mayroon itong pagpapatupad ng User mode.
Machine mode exception base address register (mtvec)
- Ang rehistrong ito ay ginagamit upang iimbak ang base address ng exception o interrupt handler at ang mas mababang dalawang bit ay ginagamit upang i-configure ang mode at paraan ng pagkakakilanlan ng vector table gaya ng inilarawan sa Seksyon 3.2.
Machine mode stagpagrehistro (mscratch)
Talahanayan 8-8 mga kahulugan ng mscratch register
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | mscratch | MRW | Imbakan ng data | 0 |
Ang rehistrong ito ay isang 32-bit na nababasa at nasusulat na rehistro sa machine mode para sa pansamantalang pag-iimbak ng data. Para kay exampAt, kapag nagpapasok ng exception o interrupt handler, ang user stack pointer SP ay iniimbak sa register na ito at ang interrupt stack pointer ay itinalaga sa SP register. Pagkatapos lumabas sa exception o interrupt, ibalik ang value ng user stack pointer SP mula sa simula. Iyon ay, ang interrupt stack at user stack ay maaaring ihiwalay.
Rehistro ng pointer ng programa ng pagbubukod sa machine mode (mapa)
Talahanayan 8-9 mga kahulugan ng rehistro ng mepc
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | mepc | MRW | Exception procedure pointer | 0 |
- Ang rehistrong ito ay ginagamit upang i-save ang pointer ng programa kapag nagpapasok ng exception o interrupt.
- Ito ay ginagamit upang i-save ang pagtuturo sa PC pointer bago magpasok ng exception kapag nabuo ang exception o interrupt, at ang mepc ay ginagamit bilang return address kapag ang exception o interrupt ay hinahawakan at ginagamit para sa exception o interrupt return.
- Gayunpaman, mahalagang tandaan iyon.
- Kapag may nangyaring exception, ina-update ang mepc sa PC value ng instruction na kasalukuyang bumubuo ng exception.
- Kapag nagkaroon ng interrupt, ina-update ang mepc sa halaga ng PC ng susunod na pagtuturo.
- Kapag kailangan mong ibalik ang isang exception pagkatapos iproseso ang exception, dapat mong bigyang-pansin ang pagbabago sa halaga ng mepc, at higit pang mga detalye ay makikita sa Kabanata 2 Exceptions.
Rehistro sanhi ng pagbubukod sa machine mode (mcause)
Talahanayan 8-10 sanhi ng kahulugan ng rehistro
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| 31 | Makagambala | MRW | Interrupt indication field 0: Exception
1: Pagkagambala |
0 |
| [30:0] | Exception Code | MRW | Para sa mga exception code, tingnan ang Talahanayan 2-1 para sa mga detalye | 0 |
- Ang rehistrong ito ay pangunahing ginagamit upang iimbak ang sanhi ng pagbubukod o ang interrupt number ng interrupt. Ang pinakamataas na bit nito ay ang Interrupt field, na ginagamit upang ipahiwatig kung ang kasalukuyang pangyayari ay isang exception o isang interrupt.
- Ang mas mababang bit ay ang exception code, na ginagamit upang ipahiwatig ang partikular na dahilan. Ang mga detalye nito ay makikita sa Kabanata 2 Exceptions.
Register ng value ng exception sa machine mode (mtval)
Talahanayan 8-11 kahulugan ng mtval register
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | mtval | MRW | Exception na halaga | 0 |
- Ang rehistrong ito ay ginagamit upang hawakan ang halaga na naging sanhi ng pagbubukod kapag may nangyaring pagbubukod. Para sa mga detalye tulad ng halaga at oras ng pag-iimbak nito, mangyaring sumangguni sa Kabanata 2 Exceptions.
PMP configuration register (pmpcfg
- Ang rehistrong ito ay pangunahing ginagamit upang i-configure ang physical memory protection unit, at bawat 8 bits ng register na ito ay ginagamit upang i-configure ang proteksyon ng isang lugar. Mangyaring sumangguni sa Kabanata 4 para sa detalyadong kahulugan.
PMP address register (pmpaddr
- Ang rehistrong ito ay pangunahing ginagamit para sa configuration ng address ng physical memory protection unit, na nag-encode sa itaas na 32 bits ng isang 34-bit na pisikal na address. Mangyaring sumangguni sa Kabanata 4 para sa partikular na paraan ng pagsasaayos.
Debug mode program pointer register (DPC)
- Ang rehistrong ito ay ginagamit upang iimbak ang address ng susunod na pagtuturo na isasagawa pagkatapos na pumasok ang microprocessor
- Ang mode ng debug at ang halaga nito ay ina-update na may iba't ibang panuntunan depende sa dahilan ng pagpasok ng debug. Sumangguni sa Seksyon 6.1 para sa isang detalyadong paglalarawan.
Debug trigger piliin ang rehistro (piliin)
- Valid lang ito para sa mga microprocessor na sumusuporta sa mga breakpoint ng hardware at higit sa lahat ay sumusuporta sa 4-channel breakpoints, at valid ang lower 2 bits nito.
- Kapag kino-configure ang bawat breakpoint ng channel, kailangan mong piliin ang kaukulang channel sa pamamagitan ng rehistrong ito bago ang configuration.
Talahanayan 8-12 piliin ang kahulugan ng rehistro
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:2] | Nakareserba | MRO | Nakareserba | 0 |
| [1:0] |
PUMILI |
MRW |
Ang rehistro ng pagpili ng breakpoint channel ay na-configure, iyon ay, pagkatapos mapili ang kaukulang channel, ang tdata1 at tdata2 na mga rehistro ay maaaring patakbuhin upang i-configure ang isang breakpoint
impormasyon. |
X |
Debug trigger data register 1(tdata1)
Ito ay may bisa lamang para sa mga microprocessor na sumusuporta sa mga breakpoint ng hardware. Sinusuportahan lamang ng mga microprocessor ang address ng pagtuturo at mga breakpoint ng address ng data, kung saan ang bit TYPE ng tdata1 register ay isang nakapirming halaga na 2, at ang iba pang mga bit ay umaayon sa kahulugan ng kontrol sa pamantayan sa pag-debug.
Talahanayan 8-13 tdata1 kahulugan ng rehistro
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:28] | URI | MRO | Depinisyon ng uri ng breakpoint, uri ng kontrol. | 0x2 |
|
27 |
DMODE |
MRO |
0: Ang mga nauugnay na rehistro ng flip-flop ay maaaring mabago sa parehong machine mode at debugging mode;
1: Tanging ang mode ng debug ang makakapagbago sa mga nauugnay na rehistro ng flip-flop. |
1 |
| [26:21] |
MASKMAX |
MRO |
Kapag MATCH=1, pinapayagan ang maximum exponential power range ng pagtutugma, ibig sabihin, ang maximum na pinapayagang hanay ng pagtutugma ay 231 bytes. |
0x1F |
| [20:13] | Nakareserba | MRO | Nakareserba | 0 |
|
12 |
PAGKILOS |
MRW |
Itakda ang processing mode kapag nagti-trigger ng breakpoint:
0: Kapag nagti-trigger, ipasok ang breakpoint at tawagan muli ang interrupt; 1: Ipasok ang debugging mode kapag na-trigger. |
0 |
| [11:8] | Nakareserba | MRO | Nakareserba | 0 |
|
7 |
MATCH |
MRW |
Pagtutugma ng configuration ng patakaran:
0: Itugma kapag ang halaga ng trigger ay katumbas ng TDATA2; 1: Ang halaga ng trigger ay tumutugma sa mataas na m bit ng TDATA2, kung saan ang m = 31–n, at n ang unang 0 quote ng TDATA2 (nagsisimula sa mababang bit). |
0 |
|
6 |
M |
MRW |
Paganahin ang flip-flop sa M mode:
0: I-disable ang trigger sa M mode; 1: Paganahin ang trigger sa M mode. |
0 |
| [5:4] | Nakareserba | MRO | Nakareserba | 0 |
|
3 |
U |
MRW |
Paganahin ang trigger sa U mode:
0: I-disable ang trigger sa U mode; 1: Paganahin ang trigger sa U mode. |
0 |
|
2 |
IPATUPAD |
MRW |
Pinagana ang pag-trigger ng address na basahin ang tagubilin: 0: Huwag paganahin;
1: Paganahin. |
0 |
|
1 |
TINDAHAN |
MRW |
Pinagana ang pag-trigger ng address ng pagsulat ng data: 0: Huwag paganahin;
1: Paganahin. |
0 |
|
0 |
LOAD |
MRW |
Pinagana ang pag-trigger ng address sa pagbasa ng data: 0: Huwag paganahin;
1: Paganahin. |
0 |
Debug trigger data register 2(tdata2)
Ito ay may bisa lamang para sa mga microprocessor na sumusuporta sa mga breakpoint ng hardware at ginagamit upang i-save ang katugmang halaga ng trigger.
Talahanayan 8-14 tdata2 kahulugan ng rehistro
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | TDATA2 | MRW | Ginagamit upang i-save ang mga katumbas na halaga. | X |
Debug control at status register (dcsr)
Ang rehistrong ito ay ginagamit upang kontrolin at i-record ang tumatakbong estado ng debugging mode. Sumangguni sa Seksyon 7.1 para sa mga detalye.
Debug mode program pointer (DPC)
Ang rehistro na ito ay ginagamit upang iimbak ang address ng susunod na pagtuturo na isasagawa pagkatapos na pumasok ang microprocessor sa debugging mode, ang halaga nito ay iba ayon sa mga dahilan ng pagpasok sa debugging mode, at ang mga panuntunan sa pag-update ay iba rin. Sumangguni sa Seksyon 7.1 para sa isang detalyadong paglalarawan.
Debug mode stagpagpaparehistro (dscratch0-1)
Ang grupong ito ng mga rehistro ay ginagamit para sa pansamantalang pag-iimbak ng data sa Debug mode.
Talahanayan 8-15 dscratch0-1 mga kahulugan ng rehistro
| bit | Pangalan | Access | Paglalarawan | I-reset ang Halaga |
| [31:0] | dscratch | DRW | Debug mode data staghalaga | 0 |
CSR Register na tinukoy ng user
User mode global interrupt enable register (gintenr)
- Ang rehistrong ito ay ginagamit upang kontrolin ang paganahin at pagtakpan ng global interrupt. Ang enable at mask ng global interrupt sa machine mode ay maaaring kontrolin ng MIE at MPIE bits sa status, ngunit ang register na ito ay hindi maaaring patakbuhin sa user mode.
- Habang ang global interrupt ay nagbibigay-daan sa pagrehistro ng gintenr ay ang pagmamapa ng MIE at MPIE sa katayuan.
- Sa user mode, ang layunin ay maaaring gamitin upang itakda at i-clear ang MIE at MPIE, gaya ng inilarawan sa Seksyon 3.2 para sa mga detalye.
Tandaan
- Hindi kasama sa mga pandaigdigang interrupt ang mga unmasked interrupt na NMI at mga exception.
Abalahin ang rehistro ng kontrol ng system (intsyscr)
Ang rehistrong ito ay pangunahing ginagamit upang i-configure ang interrupt nesting depth, hardware stack pressing, at iba pang nauugnay na function, gaya ng inilalarawan sa Seksyon 3.2 para sa mga detalye.
Microprocessor configuration register (corecfgr)
Ang rehistrong ito ay ginagamit upang kontrolin kung ang NMI interrupt ay pinahihintulutan pagkatapos ng interrupt na umapaw at kung ang interrupt request ay na-clear kapag ang fence instruction ay naisakatuparan. Mangyaring sumangguni sa Seksyon 3.2 para sa partikular na kahulugan.
Abalahin ang nested control register (inestcr)
Ang rehistrong ito ay ginagamit upang isaad ang interrupt nesting state at kung ito ay umaapaw o hindi, at para makontrol ang maximum na nesting level. Mangyaring sumangguni sa Seksyon 3.2 para sa partikular na kahulugan.
Mga Dokumento / Mga Mapagkukunan
![]() |
WH V3 Microprocessor [pdf] User Manual V3 Microprocessor, V3, Microprocessor |





