Mikroprosesor WH V3
Spesifikasi
- Model mikroprosesor: QingKeV3
- Versi: V1.2
- Fitur ISA:
- Pipa FPU
- Ramalan cabang
- Dhukungan ngganggu
- HPE Physical Memory Protection (PMP)
- Mode konsumsi daya sithik
- Extended Instruction Set Debug
Pandhuan Panggunaan Produk
Swaraview Mikroprosesor QingKe V3
Mikroprosesor seri QingKe V3 kalebu model V3A, V3B, lan V3C. Saben model nduweni fitur tartamtu lan beda adhedhasar aplikasi.
Set instruksi
Set instruksi RV32I kalebu 32 set register saka x0 nganti x31. Seri V3 ora ndhukung ekstensi floating-point (F). Saben register ukurane 32 bit.
Daftar Set
Set register RV32I kasusun saka register ing ngisor iki.
- x0: Hardcoded 0
- x1: alamat bali
- x2: Nuduhake tumpukan
- x3: Pointer global
- x4: Pitunjuk benang
- x5-x7: Register sementara
- x8: Simpen ndhaftar / pitunjuk pigura
- x9: Simpen ndhaftar / parameter fungsi / nilai bali
- x10-x11: Parameter fungsi
- x12-x17: Simpen ndhaftar
- x18-x27: Register sementara
- x28-x31: Telpon / Callee ndhaptar
Mode Privilege
Arsitektur RISC-V standar kalebu telung mode istimewa: Mode mesin, mode Supervisor, lan mode pangguna. Mikroprosesor seri QingKe V3 ndhukung mode Mesin lan mode Supervisor.
Pitakonan sing Sering Ditakoni
P: Apa model sing beda ing mikroprosesor seri QingKe V3?
A: Seri QingKe V3 kalebu model V3A, V3B, lan V3C, saben duwe fitur tartamtu lan beda rinci ing manual pangguna.
P: Pira set ndhaptar sing kasedhiya ing set instruksi RV32I?
A: Set instruksi RV32I nyedhiyakake 32 set register saka x0 nganti x31.
P: Mode istimewa apa sing didhukung dening mikroprosesor QingKe V3?
A: Mikroprosesor seri QingKe V3 ndhukung mode Mesin lan mode Supervisor minangka bagéan saka arsitektur RISC-V.
Swaraview
Mikroprosesor seri QingKe V3 yaiku mikroprosesor MCU tujuan umum 32-bit sing dikembangake dhewe adhedhasar arsitektur set instruksi RISC-V standar. Seri iki kalebu V3A, V3B lan V3C, kang V3A ndhukung extension pesawat instruksi standar RV32IMAC lan V3B / C ndhukung extension pesawat instruction standar RV32IMCB lan extension pesawat instruction XW selaras. Loro-lorone ndhukung multiplikasi siji-siklus lan divisi hardware, saliyane tumpukan tekanan hardware (HPE), interupsi tanpa meja (VTF), antarmuka debugging 1 lan 2 kabel sing ramping, instruksi "WFE", lan fitur khusus liyane. Kajaba iku, uga ndhukung Prolog Hardware / Epilogue (HPE), Tabel Vektor Gratis (VTF), antarmuka debugging 1-/2-kabel sing ramping, lan dhukungan kanggo instruksi "WFE".
Fitur
Fitur | Katrangan |
ISA | RV32IM[A]C[B] |
Pipa | 3 |
FPU | Ora didhukung |
Ramalan cabang | Prediksi cabang statis |
ngganggu | Ndhukung total 256 interrupts kalebu pangecualian, lan ndhukung VTF |
HPE | Ndhukung 2 level HPE |
Perlindhungan Memori Fisik (PMP) | Didhukung |
Mode konsumsi daya sithik | Ndhukung mode Turu lan Turu jero, lan ndhukung metode turu WFI lan WFE |
Set Instruksi Lengkap | Didhukung |
Debug | 1/2-kabel SDI, standar RISC-V debug |
Swaraview
Microprocessors seri QingKe V3 kalebu V3A, V3B, lan V3C, ana sawetara beda antarane seri miturut aplikasi, beda tartamtu rinci ing Tabel 1-1.
Tabel 1-1 Swaraview saka mikroprosesor QingKe V3
Fitur Model | ISA | Nomer HPE tingkat | Gangguan nyarang nomer saka tingkatan | VTF nomer saluran | Pipa | Vektor mode tabel | Instruksi Extended (XW) | Jumlah area pangayoman memori |
V3A | RV32IMAC | 2 | 2 | 4 | 3 | instruksi | × | × |
V3B | RV32IMCB | 2 | 2 | 4 | 3 | Alamat / Instruksi | √ | × |
V3C | RV32IMCB | 2 | 2 | 4 | 3 | Alamat / Instruksi | √ | 4 |
Cathetan: Ngalih tugas OS umume nggunakake tumpukan push, sing ora diwatesi karo jumlah level
Set instruksi
- Mikroprosesor seri QingKe V3 tindakake standar RISC-V Instruction Set Architecture (ISA). Dokumentasi rinci babagan standar kasebut bisa ditemokake ing "Manual Set Instruksi RISC-V, Volume I: User-Level ISA, Document Version 2.2" ing RISC-V International websitus. Set instruksi RISC-V nduweni arsitektur sing prasaja lan ndhukung desain modular, ngidini kombinasi fleksibel adhedhasar kabutuhan sing beda, lan seri V3 ndhukung ekstensi set instruksi ing ngisor iki.
- RV32: Arsitektur 32-bit, umum-tujuan register bit jembaré 32 bit
- I: Ndhukung operasi mbentuk, kanthi 32 register mbentuk
- M: Dhukungan mbentuk instruksi perkalian lan divisi
- A: Ndhukung printah atom
- C: Ndhukung instruksi kompresi 16-bit
- B: Dhukungan kanggo instruksi manipulasi bit
- XW: Instruksi komprèsi 16-bit kanggo operasi bait lan setengah tembung
Cathetan:
- Subset instruksi sing didhukung dening model sing beda-beda bisa uga beda, deleng Tabel 1-1 kanggo rincian;
- Supaya luwih nambah Kapadhetan kode, ngluwihi subset XW, nambah instruksi komprèsi ing ngisor iki c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , panggunaane kudu adhedhasar kompiler MRS utawa toolchain sing diwenehake;
- V3B ndhukung ngekstrak instruksi tembung (32bit) saka tembung dobel (64bit) lan ngekstrak instruksi tembung (32bit) saka asil perkalian (64bit). Cara panggunaan tartamtu bisa ngarujuk menyang fungsi perpustakaan lan kerja sama karo compiler MRS utawa toolchain sing diwenehake;
- V3B / C ndhukung instruksi salinan memori. Kanggo panggunaan tartamtu, waca fungsi perpustakaan lan kerja sama karo compiler MRS utawa toolchain.
Daftar Set
RV32I nduweni 32 daftar set saka x0-x31. Seri V3 ora ndhukung ekstensi "F", yaiku, ora ana set register floating-point. Ing RV32, saben register 32 bit. Tabel 1-2 ing ngisor iki nampilake dhaptar RV32I lan katrangane.
Tabel 1-2 register RISC-V
Ndaftar | Jeneng ABI | Katrangan | Panyimpen |
x0 | nul | Hardcoded 0 | – |
x1 | ra | alamat bali | sing nelpon |
x2 | sp | Penunjuk tumpukan | Callee |
x3 | GP | Pointer global | – |
x4 | tp | Pitunjuk benang | – |
x5-7 | t0-2 | Register sementara | sing nelpon |
x8 | s0/fp | Simpen ndhaftar / pitunjuk pigura | Callee |
x9 | s1 | Simpen registrasi | Callee |
x10-11 | a0-1 | Parameter fungsi / nilai bali | sing nelpon |
x12-17 | a2-7 | Parameter fungsi | sing nelpon |
x18-27 | a2-11 | Simpen registrasi | Callee |
X28-31 | t3-6 | Register sementara | sing nelpon |
Atribut Caller ing tabel ing ndhuwur tegese prosedur sing diarani ora nyimpen nilai register, lan atribut Callee tegese prosedur sing diarani nyimpen daftar.
Mode Privilege
- Arsitektur RISC-V standar kalebu telung mode istimewa: Mode mesin, mode Supervisor, lan mode pangguna, kaya sing ditampilake ing Tabel 1-3 ing ngisor iki.
- Mode mesin iku wajib, lan mode liyane opsional. Kanggo rincian, sampeyan bisa ndeleng Manual Set Instruksi RISC-V Volume II: Arsitektur Privilege ", sing bisa diunduh gratis saka RISC-V International. websitus.
Tabel 1-3 mode hak istimewa arsitektur RISC-V
Kode | jeneng | Singkatan |
0b00 | Mode pangguna | U |
0b01 | Model Pengawas | S |
0b10 | dilindhungi | dilindhungi |
0b11 | Mode mesin | M |
- Mikroprosesor seri QingKe V3 ndhukung rong mode istimewa kasebut.
Mode mesin
- Mode mesin nduweni wewenang paling dhuwur, program ing mode iki bisa ngakses kabeh Control and Status Register (CSR), nanging uga bisa ngakses kabeh wilayah alamat fisik.
- Default power-up ana ing mode mesin, nalika eksekusi mret (instruksi bali mode mesin) bali, miturut status registrasi CSR (Registrasi status mode mesin) ing bit MPP, yen MPP = 0b00, banjur metu saka mode Mesin menyang mode Panganggo, MPP = 0b11, banjur terus nahan mode Mesin.
Mode pangguna
- Mode pangguna nduweni hak istimewa sing paling murah, lan mung ndhaftar CSR winates sing bisa diakses ing mode iki. Nalika ana pangecualian utawa interupsi, mikroprosesor dadi saka mode Panganggo menyang mode Mesin kanggo nangani pengecualian lan interupsi.
Register CSR
Seri ndhaptar CSR ditetepake ing arsitektur RISC-V kanggo ngontrol lan ngrekam kahanan operasi mikroprosesor. CSRs iki bisa ditambahi dening 4096 ndhaftar nggunakake spasi coding alamat 12-bit khusus internal. Lan nggunakake loro CSR dhuwur [11:10] kanggo nemtokake ijin diwaca / nulis register iki, 0b00, 0b01, 0b10 kanggo diwaca / nulis diijini lan 0b11 mung diwaca. Gunakake loro bit CSR [9:8] kanggo nemtokake tingkat hak istimewa paling sing bisa ngakses register iki, lan nilai cocog karo mode hak istimewa ditetepake ing Tabel 1-3. Register CSR sing dileksanakake ing mikroprosesor QingKe V3 rinci ing Bab 8.
Pangecualian
Mekanisme pangecualian, yaiku mekanisme kanggo nyegat lan nangani "acara operasi sing ora biasa". Mikroprosesor seri QingKe V3 dilengkapi sistem respon istiméwa sing bisa nangani nganti 256 pengecualian, kalebu interrupts. Nalika ana pangecualian utawa gangguan, mikroprosesor bisa kanthi cepet nanggapi lan nangani acara pangecualian lan gangguan.
Jinis Pangecualian
Prilaku hardware saka mikroprosesor padha yen ana pangecualian utawa interupsi. Mikroprosesor nundha program saiki, pindhah menyang pangecualian utawa interrupt handler, lan bali menyang program sing sadurunge dilereni soko tugas nalika proses wis rampung. Secara umum, interrupts uga minangka bagean saka pengecualian. Apa persis kedadeyan saiki minangka interupsi utawa pangecualian viewed liwat Machine mode pangecualian sabab ndhaftar sabab. Mcause [31] minangka lapangan interupsi, sing digunakake kanggo nunjukake apa sing nyebabake pangecualian yaiku interupsi utawa pengecualian. mcause[31]=1 tegese interupsi, mcause[31]=0 tegese pangecualian. mcause [30:0] iku kode pangecualian, kang digunakake kanggo nunjukaké sabab tartamtu saka pangecualian utawa nomer interupsi, minangka ditampilake ing tabel ing ngisor iki.
Tabel 2-1 V3 kode pangecualian mikroprosesor
ngganggu | Pangecualian kode | Sinkron / Asynchronous | Alesan kanggo pangecualian |
1 | 0-1 | – | dilindhungi |
1 | 2 | Asynchronous akurat | NMI interrupts |
1 | 3-11 | – | dilindhungi |
1 | 12 | Asynchronous akurat | SysTick interrupts |
1 | 13 | – | dilindhungi |
1 | 14 | Sinkron | Software interrupts |
1 | 15 | – | dilindhungi |
1 | 16-255 | Asynchronous akurat | interupsi njaba 16-255 |
0 | 0 | Sinkron | Pandhuan alamat misalignment |
0 | 1 | Sinkron | Njupuk kesalahan akses printah |
0 | 2 | Sinkron | instruksi ilegal |
0 | 3 | Sinkron | Watesan |
0 | 4 | Sinkron | Mbukak instruksi alamat akses misalignment |
0 | 5 | Non-presisi asinkron | Muat kesalahan akses printah |
0 | 6 | Sinkron | Toko / instruksi AMO alamat akses misalignment |
0 | 7 | Non-presisi asinkron | Toko / kesalahan akses printah AMO |
0 | 8 | Sinkron | Panggilan lingkungan ing mode Panganggo |
0 | 11 | Sinkron | Telpon lingkungan ing mode Mesin |
- Sinkron" ing tabel tegese instruksi bisa dumunung persis ing ngendi dieksekusi, kayata break utawa instruksi telpon, lan saben eksekusi instruksi kasebut bakal micu pangecualian. "Asynchronous" tegese ora bisa nemtokake instruksi, lan nilai instruksi PC bisa uga beda-beda saben ana pangecualian. "Asynchronous precise" tegese pangecualian bisa ditemokake persis ing wates instruksi, yaiku, negara sawise eksekusi instruksi, kayata interupsi eksternal. "Asynchronous non-precision" tegese wates instruksi ora bisa ditemokake kanthi tepat, lan bisa uga negara sawise instruksi diselani setengah saka eksekusi, kayata kesalahan akses memori.
- Akses menyang memori mbutuhake wektu, lan mikroprosesor biasane ora ngenteni pungkasan akses nalika ngakses memori nanging terus nglakokake instruksi kasebut, nalika pangecualian kesalahan akses kedadeyan maneh, mikroprosesor wis nindakake instruksi sabanjure, lan ora bisa persis. dumunung.
Ngetik Pengecualian
Nalika program ing proses operasi normal yen sakperangan alesan, micu pangecualian utawa ngganggu. Prilaku hardware mikroprosesor ing titik iki bisa diringkes kaya ing ngisor iki.
- Nundha aliran program saiki lan pindhah menyang eksekusi fungsi pangecualian utawa interupsi. Alamat basis entri lan mode alamat saka fungsi pangecualian utawa interupsi ditetepake dening register alamat basis entri pangecualian mtvec. mtvec[31:2] nemtokake alamat dhasar saka fungsi pangecualian utawa interupsi. mtvec [1:0] nemtokake mode ngarahake fungsi handler. nalika mtvec [1: 0] = 0, kabeh pangecualian lan interrupts nggunakake entri terpadu, IE, nalika ana pangecualian utawa interupsi, iku nguripake kanggo mtvec [31:2] nemtokake alamat dhasar kanggo eksekusi. Nalika mtvec [1: 0] = 1, pangecualian lan interrupts nggunakake mode tabel vektor, yaiku, saben pangecualian lan interupsi diwenehi nomer, lan alamat diimbangi miturut nomer interrupt*4, lan nalika ana pangecualian utawa interupsi, dipindhah. menyang alamat dhasar ditetepake dening mtvec [31:2] + nomer interrupt * 4 Execution. Tabel vektor ngganggu ngemu instruksi kanggo mlumpat menyang fungsi handler interrupt, utawa bisa instruksi liyane.
- Update daftar CSR
- Nalika pangecualian utawa interupsi dilebokake, mikroprosesor kanthi otomatis nganyari ndhaftar CSR sing cocog, kalebu mesin pangecualian mode sabab ndhaftar mcause, mesin mode pangecualian pointer ndhaftar mepc, mesin mesin nilai pangecualian ndhaftar logam, lan mesin status ndhaftar status.
Nganyari mcause
Kaya sing wis kasebut sadurunge, sawise ngetik pangecualian utawa interupsi, nilai kasebut nuduhake jinis pangecualian saiki utawa nomer interupsi, lan piranti lunak bisa maca nilai registrasi iki kanggo mriksa panyebab pangecualian utawa nemtokake sumber interupsi, kaya sing rinci ing Tabel 2. -1.
Nganyari mepc
- Définisi standar alamat bali saka mikroprosesor sawise metu saka pangecualian utawa interupsi disimpen ing mepc.
- Dadi, nalika ana pangecualian utawa interupsi, hardware kanthi otomatis nganyari nilai mepc menyang nilai PC instruksi saiki nalika pangecualian ditemoni, utawa nilai PC instruksi sing wis ditindakake sadurunge sadurunge interupsi.
- Sawise pangecualian utawa interupsi diproses, mikroprosesor nggunakake nilai sing disimpen minangka alamat bali kanggo bali menyang lokasi interupsi kanggo nerusake eksekusi.
- Nanging, iku worth kang lagi nyimak sing.
- MEPC minangka ndhaftar sing bisa diwaca lan bisa ditulis, lan piranti lunak uga bisa ngowahi nilai kanggo ngowahi lokasi penunjuk PC sing mlaku sawise bali.
- Nalika ana interupsi, IE, nalika pangecualian sabab ndhaptar mcause [31] = 1, Nilai maps dianyari kanggo Nilai PC saka instruction unexecuted sabanjuré ing wektu interrupted.
- Nalika pangecualian occurs, Nilai maps dianyari kanggo Nilai PC instruksi saka istiméwa saiki nalika pangecualian nimbulaké ndhaftar mcause [31] = 0. Dadi ing wektu iki, nalika pangecualian bali, yen kita bali langsung nggunakake nilai mepc, kita terus nglakokaké instruksi sing digawe pangecualian sadurunge, lan ing wektu iki, kita bakal terus ngetik pangecualian. Biasane, sawise kita nangani pangecualian, kita bisa ngowahi nilai mepc menyang Nilai saka instruksi unexecuted sabanjuré lan banjur bali. Kanggo example, yen kita nimbulaké pangecualian amarga nelpon / break, sawise nangani istiméwa, wiwit kelingan / break (c.ebreak punika 2 bait) punika instruction 4-bait, kita mung perlu piranti lunak kanggo ngowahi Nilai saka mepc kanggo mepc +4 (c.ebreak punika mepc+2) lan banjur bali.
Nganyari mtval
Nalika pangecualian lan interrupts mlebu, hardware bakal kanthi otomatis nganyari Nilai mtval, kang Nilai sing nyebabake pangecualian. Nilai biasane.
- Yen pangecualian disebabake akses memori, hardware bakal nyimpen alamat akses memori ing wektu pangecualian menyang mtval.
- Yen pangecualian disebabake instruksi ilegal, hardware bakal nyimpen kode instruksi instruksi menyang mtval.
- Yen pangecualian disebabake breakpoint hardware, hardware bakal nyimpen nilai PC ing breakpoint menyang mtval.
- Kanggo pangecualian liyane, hardware nyetel nilai mtval kanggo 0, kayata break, pangecualian disebabake instruksi telpon.
- Nalika ngetik interupsi, hardware nyetel nilai mtval dadi 0.
Nganyari mstatus
Sawise ngetik pengecualian lan interrupts, hardware nganyari bit tartamtu ing mstatus.
- MPIE dianyari menyang nilai MIE sadurunge ngetik pangecualian utawa interupsi, lan MPIE digunakake kanggo mulihake MIE sawise pangecualian lan interupsi rampung.
- MPP dianyari menyang mode istimewa sadurunge ngetik pengecualian lan interrupts, lan sawise pengecualian lan interrupts rampung, MPP digunakake kanggo mulihake mode istimewa sadurunge.
- Mikroprosesor QingKe V3 ndhukung nyarang interrupt ing mode Mesin, lan MIE ora bakal dibusak sawise ngetik pengecualian lan interrupts.
Nganyari mode hak istimewa mikroprosesor
- Nalika pangecualian lan interrupts dumadi, mode hak istimewa saka microprocessor dianyari kanggo mode Machine.
Fungsi Penanganan Pengecualian
- Nalika ngetik pangecualian utawa interupsi, microprocessor nglakokaké program saka alamat lan mode ditetepake dening mtvec register. Nalika nggunakake entri terpadu, mikroprosesor njupuk instruksi mlumpat saka alamat dhasar sing ditetepake dening mtvec [31:2] adhedhasar nilai mtvec [1], utawa entuk pangecualian lan ngganggu alamat entri fungsi nangani lan banjur nglakokake. . Ing wektu iki, fungsi pangecualian lan interupsi bisa nemtokake manawa sababe minangka pangecualian utawa interupsi adhedhasar nilai mcause[31], lan jinis lan panyebab pangecualian utawa interupsi sing cocog bisa diadili kanthi kode pangecualian. lan ditangani miturut.
- Nalika nggunakake alamat dhasar + nomer interupsi * 4 kanggo nutup kerugian, hardware otomatis mlumpat menyang Tabel vektor kanggo njaluk alamat entri saka pangecualian utawa fungsi interrupt adhedhasar nomer interrupts lan mlumpat kanggo nglakokaké.
Exit Exit
- Sawise pangecualian utawa interrupt handler rampung, sampeyan kudu metu saka program layanan. Sawise ngetik pengecualian lan interrupts, mikroprosesor mlebu mode Mesin saka mode Panganggo, lan pangolahan pengecualian lan interupsi uga rampung ing mode Mesin. Nalika iku perlu kanggo metu pangecualian lan interrupts, iku perlu kanggo nggunakake instruksi mret bali. Ing wektu iki, hardware mikroprosesor bakal kanthi otomatis nindakake operasi ing ngisor iki.
- Pointer PC dibalèkaké menyang Nilai saka CSR ndhaftar mepc, IE, eksekusi diwiwiti ing alamat instruksi disimpen dening mepc. Sampeyan perlu kanggo mbayar manungsa waé kanggo operasi offset saka mepc sawise pangecualian penanganan rampung.
- Nganyari status ndhaftar CSR, MIE dibalekake menyang MPIE, lan MPP digunakake kanggo mulihake mode istimewa saka mikroprosesor sadurunge.
- Proses respon pangecualian kabeh bisa digambarake ing Gambar 2-1 ing ngisor iki.
PFIC lan Interrupt Control
- Mikroprosesor QingKe V3 dirancang karo Programmable Fast Interrupt Controller (PFIC) sing bisa ngatur nganti 256 interrupts kalebu pengecualian.
- Pisanan 16 mau tetep minangka interrupts internal saka microprocessor, lan liyane interrupts external, IE jumlah maksimum interrupts external bisa lengkap kanggo 240. Fitur utama minangka nderek.
- 240 interupsi eksternal, saben panjalukan interupsi nduweni pemicu independen lan bit kontrol topeng, kanthi bit status khusus
- Prioritas interupsi sing bisa diprogram ndhukung 2 tingkat nesting
- Interupsi cepet khusus ing / metu saka mekanisme, tumpukan otomatis hardware, lan Recovery, ambane HPE maksimum 2 tingkat
- Mekanisme respon interupsi Vector Table Free (VTF), akses langsung 2 saluran sing bisa diprogram menyang alamat vektor interupsi
- Cathetan: Ambane nesting maksimum lan ambane HPE sing didhukung dening pengontrol interupsi beda-beda kanggo model mikroprosesor sing beda, sing bisa ditemokake ing Tabel 1-1.
- Tabel vektor interrupts lan pengecualian ditampilake ing Tabel 3-1 ing ngisor iki.
Tabel 3-1 Pangecualian lan tabel vektor interupsi
Nomer | Prioritas | Jinis | jeneng | Katrangan |
0 | – | – | – | – |
1 | – | – | – | – |
2 | -5 | didandani | NMI | Gangguan non-maskable |
3 | -4 | didandani | EXC | Pangecualian interupsi |
4 | – | – | – | – |
5 | -3 | didandani | TELPON-M | Interrupt callback mode mesin |
6-7 | – | – | – | – |
8 | -2 | didandani | TELPON-U | Interrupt callback mode pangguna |
9 | -1 | didandani | BREAKPOINT | Breakpoint callback interrupt |
10-11 | – | – | – | – |
12 | 0 | Bisa diprogram | SysTick | Gangguan wektu sistem |
13 | – | – | – | – |
14 | 1 | Bisa diprogram | SWI | Software ngganggu |
15 | – | – | – | – |
16-255 | 2-241 | Bisa diprogram | Interupsi njaba | interupsi njaba 16-255 |
Cathetan: ECALL-M, ECALL-U, lan BREAKPOINT kabeh macem-macem jinis pangecualian EXC, sing mandhiri ing V3B/C kanggo gampang digunakake, lan 3 alamat entri ing ndhuwur dituduhake karo EXC ing V3A.
Set Register PFIC
Tabel 3-2 Register PFIC
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_ISRx | 0xE000E000
-0xE000E01C |
RO | Interrupt ngaktifake daftar status x | 0x00000000 |
PFIC_IPRx | 0xE000E020
-0xE000E03C |
RO | Ngganggu registrasi status sing ditundha x | 0x00000000 |
PFIC_ITHRESDR | 0xE000E040 | RW | Register konfigurasi ambang prioritas interrupt | 0x00000000 |
PFIC_VTFBADDRR | 0xE000E044 | RW | Register alamat dhasar VTF
Cathetan: Valid mung kanggo V3A |
0x00000000 |
PFIC_CFGR | 0xE000E048 | RW | Register konfigurasi interrupt
Cathetan: Valid mung kanggo V3A |
0x00000000 |
PFIC_GISR | 0xE000E04C | RO | Interrupt global status register | 0x00000002 |
PFIC_VTFIDR |
0xE000E050 |
RW |
Register konfigurasi ID interrupt VTF
Cathetan: Valid mung kanggo V3B/C. |
0x00000000 |
PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | VTF x ndhaftar alamat offset | 0xXXXXXXXXX |
PFIC_IENRx | 0xE000E100
-0xE000E11C |
WO | Interrupt ngaktifake setelan register x | 0x00000000 |
PFIC_IRERx | 0xE000E180
-0xE000E19C |
WO | Interrupt ngaktifake daftar sing cetha x | 0x00000000 |
PFIC_IPSRx | 0xE000E200
-0xE000E21C |
WO | Daftar setelan interupsi sing ditundha x | 0x00000000 |
PFIC_IPRRx | 0xE000E280
-0xE000E29C |
WO | Interrupt pending clear register x | 0x00000000 |
PFIC_IACTRx | 0xE000E300
-0xE000E31C |
RO | Daftar status aktivasi interrupt x | 0x00000000 |
PFIC_IPRIORx | 0xE000E400
-0xE000E43C |
RW | Register konfigurasi prioritas interrupt | 0x00000000 |
PFIC_SCTLR | 0xE000ED10 | RW | Sistem kontrol register | 0x00000000 |
Cathetan:
- NMI, EXC, ECALL-M, ECALL-U, lan BREAKPOINT tansah diaktifake kanthi gawan.
- ECALL-M, ECALL-U, lan BREAKPOINT minangka kasus EXC.
- NMI, EXC, ECALL-M, ECALL-U, lan BREAKPOINT ndhukung interrupt sing nunggu operasi sing jelas lan setelan, nanging ora ngganggu ngaktifake operasi sing jelas lan setelan.
Saben register diterangake kaya ing ngisor iki:
Interrupt ngaktifake status lan ngganggu registrasi status sing ditundha (PFIC_ISR<0-7>/PFIC_IPR<0-7>)
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_ISR0 | 0xE000E000 | RO | Interrupt 0-31 mbisakake daftar status, total 32 bit status [n], nuduhake #n interrupt mbisakake status
Cathetan: NMI lan EXC diaktifake kanthi gawan |
Kanggo V3A: 0x0000000C
Kanggo V3B/C: 0x0000032C |
PFIC_ISR1 | 0xE000E004 | RO | Interrupt 32-63 ngaktifake daftar status, total 32 bit status | 0x00000000 |
… | … | … | … | … |
PFIC_ISR7 | 0xE000E01C | RO | Interrupt 224-255 ngaktifake daftar status, total 32 bit status | 0x00000000 |
PFIC_IPR0 | 0xE000E020 | RO | Interrupt 0-31 status pending | 0x00000000 |
ndhaftar, total 32 status bit [n], nuduhake status nunggu interrupt #n | ||||
PFIC_IPR1 | 0xE000E024 | RO | Ngganggu 32-63 ndhaftar status sing ditundha, total 32 bit status | 0x00000000 |
… | … | … | … | … |
PFIC_IPR7 | 0xE000E03C | RO | Interrupt 244-255 status register, total 32 bit status | 0x00000000 |
Rong set register digunakake kanggo ngaktifake lan mateni interrupts sing cocog.
Interrupt ngaktifake setelan lan mbusak register (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_IENR0 | 0xE000E100 | WO | Interrupt 0-31 mbisakake registrasi setelan, total 32 bit setelan [n], kanggo interrupt #n ngaktifake setelan
Cathetan: NMI lan EXC yaiku diaktifake kanthi gawan |
0x00000000 |
PFIC_IENR1 | 0xE000E104 | WO | Interrupt 32-63 kanggo ngaktifake register setelan, total 32 bit setelan | 0x00000000 |
… | … | … | … | … |
PFIC_IENR7 | 0xE000E11C | WO | Interrupt 224-255 ngaktifake setelan
ndhaftar, total 32 bit setelan |
0x00000000 |
– | – | – | – | – |
PFIC_IRER0 | 0xE000E180 | WO | Interrupts 0-31 ngaktifake register sing cetha, total 32 bit sing cetha [n], kanggo interupsi #n ngaktifake clear Cathetan: NMI lan EXC ora bisa dilakokno |
0x00000000 |
PFIC_IRER1 | 0xE000E184 | WO | Interrupt 32-63 mbisakake register cetha, total 32 bit cetha | 0x00000000 |
… | … | … | … | … |
PFIC_IRER7 | 0xE000E19C | WO | Interrupt 244-255 mbisakake register sing cetha, kanthi total 32 bit sing cetha | 0x00000000 |
Rong set register digunakake kanggo ngaktifake lan mateni interrupts sing cocog.
Ngganggu setelan sing ditundha lan mbusak register (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_IPSR0 |
0xE000E200 |
WO |
Register setelan interrupt 0-31 sing ditundha, 32
bit setelan [n], kanggo interrupt #n setelan sing ditundha |
0x00000000 |
PFIC_IPSR1 | 0xE000E204 | WO | Interrupt 32-63 pending setup register,
total 32 bit persiyapan |
0x00000000 |
… | … | … | … | … |
PFIC_IPSR7 | 0xE000E21C | WO | Interrupt 224-255 setelan sing ditundha
ndhaftar, 32 bit setelan total |
0x00000000 |
– | – | – | – | – |
PFIC_IPRR0 |
0xE000E280 |
WO |
Interrupt 0-31 pending clear register, total 32 clear bit [n], kanggo interrupt #n
pending cetha |
0x00000000 |
PFIC_IPRR1 | 0xE000E284 | WO | Interrupt 32-63 pending register clear,
total 32 bit cetha |
0x00000000 |
… | … | … | … | … |
PFIC_IPRR7 | 0xE000E29C | WO | Interrupt 244-255 pending register clear,
total 32 bit cetha |
0x00000000 |
Nalika mikroprosesor mbisakake interupsi, bisa disetel langsung liwat ndhaftar interrupted pending kanggo micu interupsi. Gunakake ndhaftar sing ora diganggu kanggo mbusak pemicu sing ditundha.
Register status aktivasi interrupt (PFIC_IACTR<0-7>)
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_IACTR0 | 0xE000E300 | RO | Interrupt 0-31 ngaktifake register status kanthi 32 bit status [n], nuduhake yen interrupt #n lagi dieksekusi | 0x00000000 |
PFIC_IACTR1 | 0xE000E304 | RO | Interrupt 32-63 registrasi status aktivasi, 32 bit status ing
gunggung |
0x00000000 |
… | … | … | … | … |
PFIC_IACTR7 | 0xE000E31C | RO | Interrupt 224-255 registrasi status aktivasi, total 32 bit status | 0x00000000 |
Saben interupsi nduweni status bit aktif sing disetel nalika interupsi dilebokake lan dibusak dening hardware nalika pasar bali.
Prioritas interupsi lan daftar ambang prioritas (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_IPRIOR0 | 0xE000E400 | RW | Ngganggu konfigurasi prioritas 0. V3A: [7:4]: Bit kontrol prioritas Yen konfigurasi ora nested, ora ana preemption bit Yen nesting dikonfigurasi, bit7 minangka preempted bit. [3:0]: Diwenehake, tetep dadi 0 V3B: [7:6]: Bit kontrol prioritas Yen konfigurasi ora nested, ora ana preemptive bit dikonfigurasi nested, kabeh bit wis preempted, nanging nganti rong tingkat interrupts diijini kelakon [5:0]: Reserved, tetep kanggo 0 V3C: [7:5]: Bit kontrol prioritas Yen konfigurasi ora nested, ora ana preemptive bit Yen dikonfigurasi nested, kabeh bit wis preempted, nanging nganti rong tingkat interrupts diijini kelakon [4: 0]: Reserved, tetep kanggo 0 Cathetan: Sing cilik nilai prioritas, sing luwih dhuwur prioritas. Yen interupsi prioritas preemption sing padha macet bebarengan, interupsi karo prioritas sing luwih dhuwur bakal dieksekusi luwih dhisik. |
0x00 |
PFIC_IPRIOR1 | 0xE000E401 | RW | Ngganggu 1 setelan prioritas, fungsi padha karo PFIC_IPRIOR0 | 0x00 |
PFIC_IPRIOR2 | 0xE000E402 | RW | Ngganggu 2 setelan prioritas, fungsi padha karo PFIC_IPRIOR0 | |
… | … | … | … | … |
PFIC_IPRIOR254 | 0xE000E4FE | RW | Interrupt 254 setelan prioritas, fungsi padha karo PFIC_IPRIOR0 | 0x00 |
PFIC_IPRIOR255 | 0xE000E4FF | RW | Ngganggu 255 setelan prioritas, fungsi padha karo PFIC_IPRIOR0 | 0x00 |
– | – | – | – | – |
PFIC_ITHRESDR | 0xE000E040 | RW | Ngganggu setelan ambang prioritas
V3A: [31:8]: Dilindhungi, tetep dadi 0 [7:4]: Ambang prioritas [3:0]: Dilindhungi, tetep dadi 0V3B: [31:8]: Dilindhungi, tetep dadi 0 [7:5]: Ambang prioritas [4:0]: Dilindhungi, tetep dadi 0V3C: [31:8]: Dilindhungi, tetep dadi 0 [7:5]: Ambang prioritas [4:0]: Dilindhungi, tetep dadi 0Cathetan: Kanggo interrupts karo nilai prioritas ≥ batesan, fungsi layanan interrupted ora kaleksanan nalika hang ana, lan nalika ndhaftar iki 0, tegese ndhaftar batesan ora bener. |
0x00 |
Register konfigurasi interupsi (PFIC_CFGR)
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_CFGR | 0xE000E048 | RW | Register konfigurasi interrupt | 0x00000000 |
Register iki mung sah kanggo V3A, bit sawijining ditetepake minangka:
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:16] | KEYCODE | WO | Cocog karo bit kontrol target sing beda, data identifikasi akses keamanan sing cocog kudu ditulis bebarengan supaya bisa diowahi, lan data sing diwaca tetep dadi 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF. | 0 |
[15:8] | dilindhungi | RO | dilindhungi | 0 |
7 | SYSRESET | WO | Reset sistem (tulisan bebarengan kanggo KEY3). Mbusak otomatis 0.
Nulis 1 bener, nulis 0 ora bener. Cathetan: Fungsi sing padha karo bit SYSRESET register PFIC_SCTLR. |
0 |
6 | PFICRESET | WO | Reset modul PFIC. Mbusak otomatis 0.
Nulis 1 bener, nulis 0 ora bener. |
0 |
5 | EXPRESS | WO | Interupsi pangecualian sing durung jelas (tulisan simultan menyang KEY2)
Nulis 1 bener, nulis 0 ora bener. |
0 |
4 | EXCSET | WO | Pangecualian interrupt tertunda setelan (simultaneous nulis kanggo KEY2)
Nulis 1 bener, nulis 0 ora bener. |
0 |
3 | NMIRESET | WO | NMI interupsi ditundha cetha (nulis simultan menyang KEY2)
Nulis 1 bener, nulis 0 ora bener. |
0 |
2 | NMISET | WO | Setelan interupsi NMI sing ditundha (Tulisan simultan menyang KEY2)
Nulis 1 bener, nulis 0 ora bener. |
0 |
1 | NESTCTRL | RW | Interrupt nesting mbisakake kontrol.
1: uwal; 0: on (tulisan sinkron menyang KEY1) |
0 |
0 | HWSTKCTRL | RW | HPE ngaktifake kontrol
1: uwal; 0: on (tulisan sinkron menyang KEY1) |
0 |
Interrupt global status register (PFIC_GISR)
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_GISR | 0xE000E04C | RO | Interrupt global status register | 0x00000000 |
Wong-wong kasebut ditetepake minangka
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:14] | dilindhungi | RO | dilindhungi | 0 |
13 |
LOCKSTA |
RO |
Apa prosesor saiki ing negara sing dikunci:
1: Status dikunci; 0: Status non-kunci. Cathetan: Bit iki mung ditrapake kanggo V3B/C. |
0 |
12 |
DBGMODE |
RO |
Apa prosesor saiki ing negara debug: 1: Debug negara;
0: Status non-debug. Cathetan: Bit iki mung ditrapake kanggo V3B/C. |
0 |
11 |
GLOBLIE |
RO |
Ngaktifake gangguan global:
1: Aktifake interupsi; 0: Pateni interupsi. Cathetan: Bit iki mung ditrapake kanggo V3B/C. |
|
10 | dilindhungi | RO | dilindhungi | 0 |
9 | GPENDSTA | RO | Apa interupsi lagi ditundha.
1: wis; 0: ora. |
0 |
8 | GACTSTA | RO | Apa interupsi saiki lagi ditindakake.
1: wis; 0: ora. |
0 |
[7:0] |
NESTSTA |
RO |
Status nesting interrupt saiki. 0x03: ing level 2 interupsi.
0x01: ing tingkat 1 interupsi. 0x00: ora ana interrupts. Liyane: Kahanan sing ora mungkin. |
0 |
Alamat basis ID VTF lan daftar alamat offset (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_VTFBADDRR |
0xE000E044 |
RW |
[31:28]: 4 bit dhuwur saka alamat target VTF [27:0]: Dilindungi
Register iki mung sah kanggo V3A. |
0x00000000 |
PFIC_VTFIDR |
0xE000E050 |
RW |
[31:24]: Jumlah VTF 3 [23:16]: Jumlah VTF 2 [15:8]: Jumlah VTF 1 [7:0]: Jumlah VTF 0
Register iki mung sah kanggo V3B/C. |
0x00000000 |
– | – | – | – | – |
PFIC_VTFADDRR0 |
0xE000E060 | RW | V3A: [31:24]: Nomer interupsi VTF 0 [23:0]: 24 bit alamat target VTF sing kurang, sing 20 bit sing kurang dikonfigurasi dadi valid, lan [23:20] disetel dadi 0 .
V3B/C: [31:1]: VTF 0 alamat, 2-byte selaras [0]:1: Aktifake saluran VTF 0 0: Pateni |
Kanggo V3A: 0x00000000 Kanggo V3B/C: 0xXXXXXXXXX |
PFIC_VTFADDRR1 |
0xE000E064 |
RW |
V3A: [31:24]: Nomer interupsi VTF 1 [23:0]: 24 bit sing kurang saka alamat target VTF, sing 20 bit sing kurang dikonfigurasi dadi valid lan [23:20] disetel dadi 0.
V3B/C: [31:1]: VTF 1 alamat, 2-byte selaras [0]:1: Aktifake saluran VTF 1 0: Pateni |
Kanggo V3A: 0x00000000 Kanggo V3B/C: 0xXXXXXXXXX |
PFIC_VTFADDRR2 |
0xE000E068 |
RW |
V3A: [31:24]: Nomer interupsi VTF 2 [23:0]: 24 bit alamat target VTF sing kurang, sing 20 bit sing kurang dikonfigurasi dadi valid, lan [23:20] disetel dadi 0 .
V3B/C: [31:1]: VTF 2 alamat, 2-byte selaras [0]:1: Aktifake saluran VTF 2 0: Pateni |
Kanggo V3A: 0x00000000 Kanggo V3B/C: 0xXXXXXXXXX |
PFIC_VTFADDRR3 | 0xE000E06C | RW | V3A: | Kanggo V3A: |
[31:24]: Nomer interupsi VTF 3 [23:0]: 24 bit sing kurang saka alamat target VTF, sing 20 bit sing kurang dikonfigurasi dadi valid, lan [23:20] disetel dadi 0.
V3B/C: [31:1]: VTF 3 alamat, 2-byte selaras [0]:1: Aktifake saluran VTF 3 0: Pateni |
0x00000000
Kanggo V3B/C: 0xXXXXXXXXX |
Register kontrol sistem (PFIC_SCTLR)
jeneng | Alamat akses | Akses | Katrangan | Reset nilai |
PFIC_SCTLR | 0xE000ED10 | RW | Sistem kontrol register | 0x00000000 |
Saben-saben ditetepake kaya ing ngisor iki.
bit | jeneng | Akses | Katrangan | Reset nilai |
31 | SYSRESET | WO | Reset sistem, otomatis mbusak 0. Tulis 1 bener, lan nulis 0 ora bener.
Cathetan: Bit iki mung valid kanggo V3B/C |
0 |
[30:6] | dilindhungi | RO | dilindhungi | 0 |
5 | SETEVENT | WO | Setel acara kanggo tangi kasus WFE. | 0 |
4 |
SEVONPEND | RW | Nalika ana acara utawa interrupts negara ditundha, sistem bisa woken munggah sawise instruksi WFE, utawa yen instruksi WFE ora kaleksanan, sistem bakal woken munggah sanalika sawise eksekusi sabanjuré instruksi.
1: Acara sing diaktifake lan kabeh interupsi (kalebu interupsi sing ora diaktifake) bisa tangi sistem. 0: Mung acara aktif lan aktif interrupts bisa tangi sistem. |
0 |
3 | WFITOWFE | RW | Jalanake printah WFI kaya-kaya WFE.
1: Nambani instruksi WFI sakteruse minangka instruksi WFE. 0: Ora ana efek. |
0 |
2 | TURU | RW | Mode daya kurang saka sistem kontrol. | 0 |
1: turu 0: turu | ||||
1 | SLEEPONEXI T | RW | Status sistem sawise kontrol ninggalake program layanan interrupt.
1: Sistem mlebu mode kurang daya. 0: Sistem mlebu program utama. |
0 |
0 | dilindhungi | RO | dilindhungi | 0 |
Register CSR sing gegandhengan karo interrupt
Kajaba iku, ndhaptar CSR ing ngisor iki uga duwe pengaruh sing signifikan ing proses interupsi. Register kontrol sistem interrupt (intsyscr)
Register iki ora valid mung kanggo V3A:
jeneng | CSR alamat | Akses | Katrangan | Reset nilai |
intsyscr | 0x804 | URW | Register kontrol sistem interrupt | 0x0000E002 |
Wong-wong kasebut ditetepake minangka:
bit | jeneng | Akses | Katrangan | Reset nilai |
31 |
KUNCI |
URO |
0: Register iki bisa diwaca lan ditulis ing mode pangguna;
1: Register iki mung bisa diwaca lan ditulis ing mode mesin. Cathetan: bit konfigurasi iki bener saka versi 1.0 terus. |
0 |
[30:6] | dilindhungi | URO | dilindhungi | 0x380 |
5 |
GIHWSTKNEN |
URW1 |
Gangguan global lan mateni tumpukan hardware diaktifake.
Cathetan: Bit iki asring digunakake ing sistem operasi wektu nyata. Nalika konteks diuripake sajrone interupsi, nyetel bit iki bisa mateni interupsi global lan nyurung tumpukan hardware. Nalika saklar konteks rampung lan interupsi bali, hardware bakal kanthi otomatis mbusak bit iki. |
0 |
4 | dilindhungi | URO | dilindhungi | 0 |
[3:2] | PMTCFG | URW | Konfigurasi bit preemption prioritas:
00: Jumlah bit preemption yaiku 0; 01: Jumlah bit preemption yaiku 1; 10: Jumlah bit preemption yaiku 2; 11: Jumlah bit preemption yaiku 3; Cathetan: bit konfigurasi iki bener sawise 1.0. |
0 |
1 | NGrungokake | URW | Fungsi nesting interrupted diaktifake, lan nilai tetep yaiku 1: | 1 |
0: Pateni;
1: Aktifake. Cathetan: 1. Tingkat nesting nyata dikontrol dening NEST_LVL ing CSR 0xBC1; 2. Mung versi sawise 1.0 bisa ditulis. |
||||
0 | HWSTKEN | URW | Tumpukan hardware ngaktifake:
0: Fungsi mencet tumpukan hardware dipatèni; 1: Fungsi penet tumpukan hardware diaktifake. |
0 |
Register alamat basis pengecualian mode mesin (mtvec)
jeneng | CSR alamat | Akses | Katrangan | Reset nilai |
mtvec | 0x305 | MRW | Register alamat basis pangecualian | 0x00000000 |
Wong-wong kasebut ditetepake minangka
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:2] | BASEADDR[31:2] | MRW | Alamat basis tabel vektor interrupt, ngendi
bit [9:2] tetep dadi 0. |
0 |
1 | MODE1 |
MRO |
Mode pangenalan tabel vektor interrupt: 0: Ngenali kanthi instruksi mlumpat, kanthi ruang lingkup winates, lan ndhukung instruksi non-jump;
1: Ngenali kanthi alamat absolut, ndhukung sawetara lengkap, nanging kudu mlumpat. Cathetan: Bit iki mung valid kanggo V3B/C. |
0 |
0 | MODE0 | MRW | Pilihan mode alamat entri interrupt utawa pengecualian.
0: Panganggone alamat entri seragam. 1: Alamat offset adhedhasar nomer interrupt *4. |
0 |
Kanggo MCU kanthi mikroprosesor seri V3, MODE0 dikonfigurasi dadi 1 minangka standar ing wiwitan. file, lan entri kanggo pangecualian utawa interupsi diimbangi miturut nomer interupsi *4. Elinga yen mikroprosesor V3A nyimpen instruksi mlumpat ing tabel vektor, dene mikroprosesor V3B / C bisa dadi instruksi mlumpat utawa nggunakake alamat mutlak fungsi interupsi, sing dikonfigurasi minangka alamat absolut ing wiwitan standar. file.
Register konfigurasi mikroprosesor (korektor)
Register iki ora sah kanggo V3A:
jeneng | CSR alamat | Akses | Katrangan | Reset nilai |
corecfgr | 0xBC0 | MRW | Register konfigurasi mikroprosesor | 0x00000001 |
Wong-wong kasebut ditetepake minangka
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:8] | dilindhungi | MRO | dilindhungi | 0 |
7 |
CSTA_FAULT_IE |
MRW |
Ngaktifake gangguan status inti:
0: Ing kesalahan status, ora NMI interrupt digawe; 1: Ing kesalahan status, NMI interrupt punika kui. |
0 |
6 | dilindhungi | MRO | Simpen 0. | 0 |
5 | IE_REMAP_EN | MRW | Pemetaan register MIE ngaktifake:
0: Alamat CSR 0x800 minangka register mung diwaca lan nilai bali minangka nilai STATUS; 1: Bit 3 lan 7 saka alamat CSR 0x800 dipetakan menyang bit MIE saka register STATUS lan bit MPIE saka register STATUS. |
0 |
4 | dilindhungi | MRO | dilindhungi | 0 |
3 | ROM_LOOP_ACC | MRW | ROM area instruksi loop akselerasi ngaktifake:
0: Pateni fungsi akselerasi siklik ing area ROM; 1: Instruksi sing terus-terusan karo awak loop ing 128 bait bakal dicepetake kanthi lengkap, dene sing duwe awak loop ing 256 bait bakal dicepetake sebagian; |
0 |
2 | ROM_JUMP_ACC | MRW | ROM area instruksi akselerasi lompat aktif:
0: Pateni ROM area instruksi mlumpat akselerasi; 1: Aktifake akselerasi lompat instruksi ing area ROM. |
0 |
[1:0] | FETCH_MODE | MRW | Mode njupuk:
00: Prefetch dipateni. Fungsi prefetch instruksi dipateni kanggo ngindhari operasi njupuk instruksi sing ora bener, lan paling ora ana siji instruksi sing bener ing pipa CPU. Model iki nduweni konsumsi daya paling murah, lan kinerjane mudhun udakara 2 ~ 3 kali. 01: Mode Prefetch 1. Nalika fungsi prefetch instruksi diuripake, CPU bakal terus ngakses memori instruksi nganti jumlah instruksi sing bakal dieksekusi ing buffer instruksi internal ngluwihi nomer tartamtu, utawa buffer instruksi kebak, lan njupuk instruksi bakal dilereni soko tugas; (Gagal prediksi CPU bakal nyebabake operasi njupuk keluwih, lan ing sawetara kasus, unit eksekusi bakal ngenalake 0 ~ 2 siklus gelembung, lan kinerja akeh program ora bakal mudhun kanthi jelas); 10: Reserved; |
0x1 |
Register kontrol bersarang interrupt (inestcr)
Register iki ora valid mung kanggo V3A:
jeneng | CSR alamat | Akses | Katrangan | Reset nilai |
investor | 0xBC1 | MRW | Register kontrol nested interrupt | 0x00000000 |
Wong-wong kasebut ditetepake minangka
bit | jeneng | Akses | Katrangan | Reset nilai |
31 | dilindhungi | MRO | dilindhungi | 0 |
30 | NEST_OV | MRW | Interrupt/exception nested overflow flag bit, tulis 1 kanggo mbusak:
0: Interupsi ora kebanjiran; 1: Interrupt overflow flag. Cathetan: Interrupt overflow mung bakal kedadeyan nalika nglakokake fungsi layanan interrupt sekunder kanggo ngasilake pengecualian instruksi utawa interupsi NMI. Ing wektu iki, pangecualian lan NMI interrupt mlebu biasane, nanging tumpukan CPU overflows, supaya sampeyan ora bisa metu saka pangecualian iki lan NMI ngganggu. |
0 |
[29:12] | dilindhungi | MRO | dilindhungi | 0 |
[11:8] | NEST_STA | MRO | Bit gendera status bersarang:
0000: Ora ana interupsi; 0001: Interupsi level 1; 0011: level 2 interupsi (1-level nesting); |
0 |
0111: Level 3 interupsi (overflow);
1111: Level 4 interupsi (overflow). |
||||
[7:2] | dilindhungi | MRO | dilindhungi | 0 |
[1:0] | NEST_LVL | MRW | Tingkat nesting:
00: Nesting dilarang lan fungsi nesting dipateni; 01: Nesting tingkat pisanan, sing nguripake fungsi nesting; Liyane: Ora sah. Wigati: Tulis 10 utawa 11 ing lapangan iki, lan lapangan bakal disetel kanggo 01. Nalika nulis 11 ing lapangan iki, maca register iki kanggo njaluk tingkat nesting paling dhuwur saka chip. |
0 |
Mode pangguna interrupt global ngaktifake register (intern)
Register iki ora valid mung kanggo V3A:
jeneng | CSR alamat | Akses | Katrangan | Reset nilai |
gintenr | 0x800 | URW | Interrupt global ngaktifake ndhaptar | 0x00000000 |
Register iki digunakake kanggo ngontrol ngaktifake lan topeng gangguan global. Aktifake lan topeng gangguan global ing mode mesin bisa dikontrol dening bit MIE lan MPIE ing status, nanging ndhaftar iki ora bisa dilakokno ing mode pangguna.
Interrupt global ngaktifake register gintenr yaiku pemetaan MIE lan MPIE ing mstatus, lan bisa digunakake kanggo nyetel lan mbusak MIE lan MPIE kanthi operasi gintenr ing mode pangguna.
Saben wong ditetepake minangka:
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:13] | dilindhungi | URO | dilindhungi | 0 |
[12:11] | MPP | URO | Ketik mode istimewa sadurunge gangguan. | 0 |
[10:8] | dilindhungi | URO | dilindhungi | 0 |
7 | MPIE | URW | Nalika 0xBC0(CSR)bit5 diaktifake, bit iki
bisa diwaca lan ditulis ing mode pangguna. |
0 |
[6:4] | dilindhungi | URO | dilindhungi | 0 |
3 | MIE | URW | Nalika 0xBC0(CSR)bit5 diaktifake, bit iki
bisa diwaca lan ditulis ing mode pangguna. |
0 |
[1:0] | dilindhungi | URO | dilindhungi | 0 |
Ngganggu Nesting
Magepokan karo gangguan, konfigurasi ndhaftar PFIC_CFGR lan prioritas interrupt ndhaftar PFIC_IPRIOR, nesting saka interrupts bisa diijini kelakon. Aktifake nesting ing ndhaptar konfigurasi interrupt (Nesting diuripake kanthi standar kanggo mikroprosesor seri V3) lan atur prioritas interupsi sing cocog. Sing luwih cilik nilai prioritas, luwih dhuwur prioritas. Sing luwih cilik nilai bit preemption, luwih dhuwur prioritas preemption. Yen ana interrupts hanging ing wektu sing padha ing prioritas preemption padha, microprocessor nanggapi interrupts karo nilai prioritas ngisor (prioritas luwih) pisanan.
Prolog/Epilog Hardware (HPE)
- Nalika ana pangecualian utawa interupsi, mikroprosesor mandheg aliran program saiki lan ngalih menyang eksekusi fungsi penanganan pangecualian utawa interupsi, situs aliran program saiki kudu disimpen. Sawise pangecualian utawa ngganggu bali, perlu kanggo mulihake situs kasebut lan nerusake eksekusi aliran program sing mandheg. Kanggo mikroprosesor seri V3, "situs" ing kene nuduhake kabeh ndhaptar Disimpen Penelepon ing Tabel 1-2.
- Mikroprosesor seri V3 ndhukung panyimpenan otomatis siji-siklus hardware saka 16 register sing disimpen ing panelpon menyang area tumpukan internal sing ora katon kanggo pangguna. Nalika pangecualian utawa ngganggu bali, hardware siji siklus otomatis mulihake data saka area tumpukan internal menyang 16-shaped register. HPE ndhukung nesting nganti 2 tingkat jero.
- Skema tumpukan tekanan mikroprosesor ditampilake ing gambar ing ngisor iki.
Cathetan:
- Fungsi interrupt nggunakake HPE kudu dikompilasi nggunakake MRS utawa toolchain sing diwenehake lan fungsi interrupt kudu diumumake kanthi __attribute__((interrupt("WCH-Interrupt-fast"))).
- Fungsi interrupt nggunakake push tumpukan diumumake dening __attribute__((interrupt())).
Tabel Vektor Gratis (VTF)
- Programmable Fast Interrupt Controller (PFIC) nyedhiyakake 4 saluran VTF, yaiku, akses langsung menyang entri fungsi interrupt tanpa liwat proses goleki tabel vektor interrupt.
- Saluran VTF bisa diaktifake kanthi nulis nomer interupsi, alamat basis fungsi layanan interrupt, lan alamat offset menyang register pengontrol PFIC sing cocog nalika ngonfigurasi fungsi interupsi kanthi normal.
- Proses respon PFIC kanggo interrupts cepet lan meja-free kapacak ing Figure 3-2 ngisor.
PMP Pangreksan Memori Fisik
- Kanggo nambah keamanan sistem, modul proteksi memori fisik (PMP) dirancang miturut standar arsitektur RISC-V kanggo mikroprosesor seri V3 saka gandum dataran tinggi. Manajemen hak akses nganti 4 wilayah fisik didhukung. Idin kalebu maca (R), nulis (W), lan nglakokaké (X) atribut, lan dawa wilayah sing dilindhungi bisa disetel kanggo paling 4 bita. Modul PMP tansah ditrapake ing mode pangguna, nanging bisa ditrapake kanthi opsional kanthi ngunci atribut (L) ing mode mesin.
- Yen akses nerak watesan ijin saiki, bakal micu gangguan abnormal. Modul PMP kalebu papat klompok registrasi konfigurasi 8-dicokot (Siji klompok 32-dicokot) lan papat klompok ndhaptar alamat, kabeh kudu diakses ing mode mesin kanthi instruksi CSR.
- Cathetan: Jumlah wilayah sing dilindhungi sing didhukung PMP ing macem-macem model mikroprosesor bisa uga beda-beda, lan nomer sing didhukung dening registrasi pmpcfg lan pmpaddr uga beda. Waca Tabel 1-1 kanggo rincian.
PMP Register Set
Dhaptar CSR ndhaftar didhukung dening modul PMP saka V3 microprocessor kapacak ing Tabel 4-1 ngisor.
Tabel 4-1 set register modul PMP
jeneng | alamat CSR | Akses | Katrangan | Reset nilai |
pmpcfg0 | 0x3a0 | MRW | Register konfigurasi PMP 0 | 0x00000000 |
pmpaddr0 | 0x3b0 | MRW | Daftar alamat PMP 0 | 0xXXXXXXXXX |
pmpaddr1 | 0x3b1 | MRW | Daftar alamat PMP 1 | 0xXXXXXXXXX |
pmpaddr2 | 0x3b2 | MRW | Daftar alamat PMP 2 | 0xXXXXXXXXX |
pmpaddr3 | 0x3b3 | MRW | Daftar alamat PMP 3 | 0xXXXXXXXXX |
pmp
pmpcfg punika ndhaftar konfigurasi saka unit PMP, lan saben ndhaftar ngandhut papat kothak pumping 8-dicokot, cocog kanggo konfigurasi saka papat wilayah, lan pumping nggantosi Nilai konfigurasi saka wilayah i. Format kasebut ditampilake ing tabel 4-2 ing ngisor iki.
Tabel 4-2 ndhaftar pmpcfg0
pmpcfg digunakake kanggo ngatur area I lan definisi bit diterangake ing tabel ing ngisor iki 4-3.
Tabel 4-3
bit | jeneng | Katrangan |
7 | L | Ngunci diaktifake lan bisa dikunci ing mode mesin. 0: Ora dikunci;
1: Ngunci register sing cocog. |
[6:5] | – | dilindhungi |
[4:3] | A | Penyelarasan alamat lan pilihan jangkauan area perlindungan. 00: OFF (PMP mati)
01: TOR (Top alignment pangayoman) 10: NA4 (Fixed four-byte protection) 11: NAPOT (2(G+2) Proteksi Byte, G≥1) |
2 | X | Atribut sing bisa dieksekusi. |
0: Ora nglakokake ijin;
1: Nglakokake ijin. |
||
1 |
W |
Atribut sing bisa ditulis.
0: Ora ana ijin nulis 1: Ijin nulis. |
0 |
R |
Atribut sing bisa diwaca
0: Ora ana ijin maca 1: Ijin maca. |
pmpaddr
Register pmpaddr digunakake kanggo ngatur alamat area I. Définisi standar ing arsitektur RV32, yaiku enkoding 32 bit ndhuwur alamat fisik 34-bit, lan format kasebut ditampilake ing tabel 4-4 ing ngisor iki. .
Ruang alamat fisik kabeh mikroprosesor V3 yaiku 4G, saengga rong bit ndhuwur register iki ora digunakake.
Tabel 4-4 pmpaddr
Nalika NAPOT dipilih, bit kurang saka register alamat uga digunakake kanggo nunjukaké ukuran wilayah pangayoman saiki, minangka ditampilake ing tabel ing ngisor iki, ngendi 'y' minangka dicokot saka register.
Tabel 4-5 Tabel hubungan antarane konfigurasi PMP lan register alamat lan wilayah sing dilindhungi.
pmpaddr | pmpcfg. A | Cocog alamat dhasar lan ukuran |
yyyy…yyyy | NA4 | Kanthi 'yy…yyyy00' minangka alamat dhasar, area 4-byte dilindhungi. |
yyy…yyy0 | NAPOT | Kanthi 'yy…yyy000' minangka alamat dhasar, area 8-byte dilindhungi. |
yyyy…yy01 | NAPOT | Kanthi 'yy…yy0000' minangka alamat dhasar, area 16-byte dilindhungi. |
yyyy…y011 | NAPOT | Kanthi 'yy…y00000' minangka alamat dhasar, area 16-byte dilindhungi. |
… | … | … |
yyy01…111 | NAPOT | Kanthi 'y0…000000' minangka alamat dhasar, area 231-byte dilindhungi. |
yy011…111 | NAPOT | Nglindhungi kabeh area 232-bait. |
Mekanisme pangayoman
X/W/R ing pmpcfg digunakake kanggo nyetel wewenang pangayoman wilayah I, lan nglanggar wewenang sing relevan bakal nyebabake pangecualian sing cocog:
- Nalika nyoba njupuk instruksi ing wilayah PMP tanpa wewenang eksekusi, bakal nyebabake pangecualian kesalahan akses njupuk instruksi (mcause=1).
- Nalika nyoba kanggo nulis data ing wilayah PMP tanpa idin ditulis, bakal nimbulaké pangecualian kesalahan (mcause = 7) ing akses instruction nyimpen.
- Nalika nyoba kanggo maca data ing wilayah PMP tanpa ijin maca, bakal nimbulaké kesalahan akses memori abnormal (mcause = 5) kanggo instruksi mbukak.
A ing pmpcfg digunakake kanggo nyetel jangkoan proteksi lan penyelarasan alamat wilayah I, lan kanggo nglindhungi memori A_ADDR ≤ wilayah <i > <B_ADDR (loro A_ADDR lan B_ADDR kudu didadekake siji ing 4 bita):
- Yen B _ ADDR–A_ADDR = = 22, mode NA4 diadopsi;
- Yen B _ ADDR–A_ADDR = = 2(G+2), G≥1, lan alamat _ yaiku 2(g+2), metode NAPOT diadopsi;
- Yen ora, mode TOP diadopsi.
Tabel 4-6 metode pencocokan alamat PMP
A nilai | jeneng | Katrangan |
0b00 | OFF | Ora ana wilayah kanggo nglindhungi |
0b01 | TOR | Proteksi Area Selaras Top.
Ing pmp pmpaddri = B_ADDR >> 2. Cathetan: Yen area 0 PMP dikonfigurasi minangka mode TOR (i=0), wates ngisor area proteksi yaiku 0 alamat, yaiku 0 ≤ addr < pmpaddr0, kabeh ana ing kisaran sing cocog. |
0b10 | NA4 | Ndandani proteksi area 4-bait.
pmp |
0b11 | NAPOT | Nglindhungi wilayah 2(G+2) nganggo G ≥ 1, nalika A_ADDR 2(G+2) didadekake siji. pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1. |
- Bit L ing pmp
- Mikroprosesor seri QingKe V3 ndhukung perlindungan sawetara zona. Nalika operasi sing padha cocog karo sawetara zona ing wektu sing padha, zona kanthi nomer sing luwih cilik dicocogake dhisik.
Timer Sistem (SysTick)
- Mikroprosesor seri QingKe V3 dirancang kanthi counter 32-bit utawa 64-bit (SysTick) ing njero. Sumber jam kasebut yaiku jam sistem utawa divisi 8 frekuensi, lan V3A mung ndhukung divisi 8 frekuensi.
- Bisa nyedhiyakake basis wektu, wektu, lan wektu pangukuran kanggo sistem operasi wektu nyata. Macem-macem jinis ndhaptar sing melu timer duwe alamat pemetaan sing beda, kaya sing ditampilake ing tabel 5-1 lan 5-2 ing ngisor iki.
Tabel 5-1 V3A SysTick dhaftar dhaftar
jeneng | Alamat akses | Katrangan | Reset nilai |
STK_CTLR | 0xE000F000 | Register kontrol counter sistem | 0x00000000 |
STK_CNTL | 0xE000F004 | Sistem counter low register | 0xXXXXXXXXX |
STK_CNTH | 0xE000F008 | Sistem counter dhuwur register
Cathetan: Mung valid kanggo V3A. |
0xXXXXXXXXX |
STK_CMPLR | 0xE000F00C | Sistem count comparison Nilai register kurang | 0xXXXXXXXXX |
STK_CMPHR | 0xE000F010 | Sistem count comparison Nilai dhuwur register
Cathetan: Mung valid kanggo V3A. |
0xXXXXXXXXX |
Tabel 5-2 V3 SysTick dhaftar dhaftar model liyane
jeneng | Alamat akses | Katrangan | Reset nilai |
STK_CTLR | 0xE000F000 | Register kontrol counter sistem | 0x00000000 |
STK_SR | 0xE000F004 | Register status counter sistem | 0x00000000 |
STK_CNTL | 0xE000F008 | Register kurang saka counter sistem | 0xXXXXXXXXX |
STK_CMPLR | 0xE000F010 | Count nilai comparison low register | 0xXXXXXXXXX |
Saben register diterangake kanthi rinci kaya ing ngisor iki.
Register kontrol counter sistem (STK_CTLR)
Tabel 5-3 Register kontrol SysTick
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:5] | dilindhungi | RO | dilindhungi | 0 |
4 |
MODE |
RW |
Mode ngetang: 1: Ngitung mudhun;
0: Ngitung. Cathetan: Ora sah kanggo V3A. |
0 |
3 |
STRE |
RW |
Ngitung ulang otomatis ngaktifake bit:
1: Count saka 0 maneh sawise ngetung nganti nilai comparison, lan count saka nilai comparison maneh sawise count mudhun kanggo 0; 0: Terus ngitung munggah/mudhun. Cathetan: Ora sah kanggo V3A. |
0 |
2 |
STCLK |
RW |
Bit pilihan sumber counterclock:
1: HCLK minangka basis wektu; 0: HCLK / 8 minangka basis wektu. Cathetan: Iku ora sah kanggo V3A, sing mung ndhukung HCLK / 8 minangka basis wektu. |
0 |
1 | SITUS | RW | Counter interrupt ngaktifake bit kontrol: | 0 |
1: Aktifake counter interrupt; 0: Pateni interupsi counter.
Cathetan: Ora sah kanggo V3A. |
||||
0 | STE | RW | Sistem counter mbisakake dicokot kontrol. 1: Aktifake sistem counter STK;
0: Pateni sistem counter STK lan counter mandheg ngetang. |
0 |
Register status counter sistem (STK_SR)
Register iki ora ditrapake kanggo V3A.
Tabel 5-4 SysTick counter low register
bit | jeneng | Akses | Katrangan | Reset nilai |
31 |
SWIE |
RW |
Software interrupt trigger enable (SWI): 1: Trigger software interrupt;
0: Pateni pemicu. Cathetan: Bit iki kudu dibusak sawise ngetik interupsi piranti lunak, yen ora, iku bakal tansah micu. |
0 |
[30:1] | dilindhungi | RO | dilindhungi | 0 |
0 |
CNTIF |
RW |
Ngitung gendera perbandingan, tulis 0 kanthi cetha, tulis 1 ora bener:
1: Count nganti nilai comparison lan count mudhun kanggo 0; 0: Nilai perbandingan ora tekan. |
0 |
Sistem counter low register (STK_CNTL)
Tabel 5-5 SysTick counter low register
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:0] | CNTL | RW | Nilai count counter saiki 32 bit luwih murah. Kanggo V3A, register iki bisa diwaca minangka 8-bit /16-bit
/32-dicokot, nanging mung bisa ditulis minangka 8-dicokot, lan liyane model ora winates. |
0xXXXXXX XXX |
Cathetan: Register STK_CNTL lan ndhaftar STK_CNTH ing V3A bebarengan dadi counter sistem 64-bit.
Sistem counter high register (STK_CNTH)
Tabel 5-6 SysTick counter dhuwur register
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:0] | CNTH | RW | Nilai count counter saiki 32 bit luwih dhuwur. Register iki bisa diwaca kanthi 8-bit/16-bit/32-bit, nanging mung bisa ditulis kanthi 8-bit.
Cathetan: Mung valid kanggo V3A. |
0xXXXXXX XXX |
Cathetan: Register STK_CNTL lan ndhaftar STK_CNTH ing V3A bebarengan dadi counter sistem 64-bit.
Sistem count comparison value low register (STK_CMPLR)
Tabel 5-7 SysTick nilai comparison low register
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:0] | CMPL | RW | Setel nilai perbandingan counter dadi 32 bit luwih murah. Nalika nilai CMP lan nilai CNT padha, gangguan STK bakal micu. Kanggo V3A, register iki bisa diwaca minangka 8-bit /16-bit /32-bit, nanging mung bisa
ditulis minangka 8-dicokot, lan model liyane ora winates. |
0xXXXXXX XXX |
Cathetan: Register STK_CMPLR lan register STK_CMPHR ing V3A bebarengan dadi nilai 64-bit counter comparison.
Sistem count comparison value register dhuwur (STK_CMPHR)
Tabel 5-8 SysTick nilai comparison dhuwur register
bit | jeneng | Akses | Katrangan | Reset nilai |
[31:0] | CMPH | RW | Setel nilai perbandingan counter 32 bit luwih dhuwur. Interupsi STK bakal dipicu nalika nilai CMP lan nilai CNT padha.
Register iki bisa diwaca kanthi 8-bit/16-bit/32-bit, nanging mung bisa ditulis kanthi 8-bit. Cathetan: Mung valid kanggo V3A. |
0xXXXXXX XXX |
Cathetan: Register STK_CMPLR lan register STK_CMPHR ing V3A bebarengan dadi nilai 64-bit counter comparison.
Prosesor Setelan Low-daya
- Mikroprosesor seri QingKe V3 ndhukung kahanan turu liwat instruksi WFI (Ngenteni Interrupt) kanggo entuk konsumsi daya statis sing kurang.
- Bebarengan karo register kontrol sistem PFIC (PFIC_SCTLR), macem-macem mode Turu lan instruksi WFE bisa dileksanakake.
Ketik Turu
- Mikroprosesor seri QingKe V3 bisa turu kanthi rong cara, Enteni Interrupt (WFI) lan Enteni Acara (WFE). Cara WFI tegese mikroprosesor turu, ngenteni interupsi tangi, lan banjur tangi kanggo interupsi sing cocog kanggo dieksekusi. Cara WFE tegese mikroprosesor turu, ngenteni acara tangi, lan tangi kanggo nerusake nglakokake aliran program sing mandheg sadurunge.
- RISC-V standar ndhukung instruksi WFI, lan printah WFI bisa kaleksanan langsung kanggo ngetik turu dening cara WFI. Kanggo cara WFE, bit WFITOWFE ing sistem kontrol register PFIC_SCTLR digunakake kanggo ngontrol printah WFI sakteruse minangka Processing WFE kanggo entuk cara WFE kanggo ngetik turu.
- Jero turu dikontrol miturut bit SLEEPDEEP ing PFIC_SCTLR.
- Yen SLEEPDEEP ing register PFIC_SCTLR wis dibusak kanggo nul, mikroprosesor lumebu ing mode Turu lan jam unit internal diijini dipateni kajaba SysTick lan bagéan saka logika tangi.
- Yen SLEEPDEEP ing registrasi PFIC_SCTLR disetel, mikroprosesor mlebu mode turu jero lan kabeh jam sel diijini dipateni.
- Nalika mikroprosesor ana ing mode Debug, ora bisa ngetik mode Turu apa wae.
Tangi turu
Mikroprosesor seri QingKe V3 bisa tangi sawise turu amarga WFI lan WFE kanthi cara ing ngisor iki.
Sawise cara WFI dadi turu, bisa awakened dening
- Mikroprosesor bisa tangi kanthi sumber interupsi sing ditanggapi dening pengontrol interupsi. Sawise tangi, mikroprosesor nindakake fungsi interupsi dhisik.
- Ketik mode Turu, panyuwunan debug bisa nggawe mikroprosesor tangi lan turu turu, panyuwunan debug ora bisa tangi mikroprosesor.
Sawise cara WFE turu, mikroprosesor bisa tangi kanthi cara ing ngisor iki.
- Acara internal utawa eksternal, nalika ora perlu ngatur pengontrol interupsi, tangi lan terus nglakokake program kasebut.
- Yen sumber interupsi diaktifake, mikroprosesor bakal tangi nalika interupsi digawe, lan sawise tangi, mikroprosesor nindakake fungsi interupsi dhisik.
- Yen bit SEVONPEND ing PFIC_SCTLR dikonfigurasi, pengontrol interupsi ora ngaktifake interupsi, nanging nalika sinyal sing ditundha interupsi anyar digawe (sinyal sing ditundha sadurunge ora ditrapake), bisa uga nggawe mikroprosesor tangi, lan gendéra sing ditundha interupsi sing cocog kudu dibusak kanthi manual sawise tangi.
- Ketik panjalukan debug mode Turu bisa nggawe mikroprosesor tangi lan mlebu turu jero, panyuwunan debug ora bisa tangi mikroprosesor.
- Kajaba iku, kahanan mikroprosesor sawise tangi bisa dikontrol kanthi ngonfigurasi bit SLEEPONEXIT ing PFIC_SCTLR.
- SLEEPONEXIT disetel lan instruksi bali interrupt tingkat pungkasan (mret) bakal micu mode WFI turu.
SLEEPONEXIT dibusak tanpa efek.
Macem-macem produk MCU sing dilengkapi mikroprosesor seri V3 bisa nganggo mode turu sing beda-beda, mateni peripheral lan jam sing beda-beda, ngleksanakake kabijakan manajemen daya lan cara tangi sing beda-beda miturut konfigurasi PFIC_SCTLR sing beda-beda, lan ngerteni macem-macem mode kurang daya.
Dhukungan Debug
- Mikroprosesor seri QingKe V3 kalebu modul debug hardware sing ndhukung operasi debugging kompleks. Nalika microprocessor wis dilereni soko tugas, modul debug bisa ngakses GPRs microprocessor, CSRs, Memori, piranti external, etc.. liwat printah abstrak, instruksi panyebaran buffer program, etc.. Modul debug bisa nundha lan nerusake operasi microprocessor.
- Modul debug nderek spesifikasi RISC-V External Debug Support Version0.13.2, dokumentasi rinci bisa didownload saka RISC-V International websitus.
Modul Debug
- Modul debug ing mikroprosesor, sing bisa nindakake operasi debug sing ditanggepi dening host debug, kalebu.
- Akses menyang ndhaptar liwat antarmuka debug
- Reset, nundha, lan nerusake mikroprosesor liwat antarmuka debug
- Maca lan nulis memori, ndhaptar instruksi, lan piranti eksternal liwat antarmuka debug
- Nyebarake sawetara instruksi sembarang liwat antarmuka debug
- Setel breakpoints piranti lunak liwat antarmuka debug
- Setel breakpoints hardware liwat antarmuka debug
- Ndhukung eksekusi otomatis printah abstrak
- Dukungan single-step debugging
- Cathetan: V3A ora ndhukung breakpoints hardware, V3B hardware breakpoints ndhukung instruksi cocog alamat, lan V3C hardware breakpoints ndhukung alamat instruksi lan cocog alamat data.
- Register internal modul debugging nggunakake kode alamat 7-bit, lan ndhaftar ing ngisor iki dileksanakake ing mikroprosesor seri QingKe V3.
Tabel 7-1 Daftar registrasi modul Debug
jeneng | Alamat akses | Katrangan |
data0 | 0x04 | Data register 0, bisa digunakake kanggo panyimpenan sementara data |
data1 | 0x05 | Data register 1, bisa digunakake kanggo panyimpenan sementara data |
dekontrol | 0x10 | Debug modul kontrol register |
dmstatus | 0x11 | Register status modul debug |
hartinfo | 0x12 | Daftar status mikroprosesor |
abstrak | 0x16 | Daftar status perintah abstrak |
dhawuh | 0x17 | Register printah abstrak |
otomatis abstrak | 0x18 | Eksekusi otomatis printah abstrak |
progbuf0-7 | 0x20-0x27 | Register cache instruksi 0-7 |
mandeg0 | 0x40 | Ngaso daftar status |
- Host debug bisa ngontrol penundaan mikroprosesor, nerusake, ngreset, lan sapiturute kanthi ngatur daftar dekontrol. Standar RISC-V nemtokake telung jinis perintah abstrak: register akses, akses cepet, lan memori akses.
- Mikroprosesor QingKe V3A mung ndhukung akses registrasi, model liyane ndhukung ndhaptar lan akses memori, nanging ora akses cepet. Akses menyang ndhaptar (GPR, CSR) lan akses terus menyang memori bisa diwujudake kanthi printah abstrak.
- Modul debug ngleksanakake 8 instruksi cache ndhaftar progbuf0-7, lan inang debug bisa cache sawetara instruksi (kang bisa dikompres instruksi) menyang buffer lan bisa milih terus nglakokaké instruksi ing instruksi cache ndhaftar sawise nglakokaké printah abstrak utawa nglakokaké instruksi cache langsung.
- Cathetan yen instruksi pungkasan ing program kasebut kudu instruksi "ebreak" utawa "c.ebreak". Akses menyang panyimpenan, peripheral, lan sapiturute uga bisa liwat printah abstrak lan instruksi cache ing program.
- Saben register diterangake kanthi rinci kaya ing ngisor iki.
- Daftar data 0 (data0)
Tabel 7-2 definisi register data
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | data0 | RW | Register data 0, digunakake kanggo panyimpenan sementara data | 0 |
Daftar data 1 (data1)
Tabel 7-3 definisi registrasi data1
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | data1 | RW | Register data 1, digunakake kanggo panyimpenan sementara data | 0 |
Register kontrol modul debug (dekontrol)
Register iki ngontrol jeda, ngreset, lan nerusake mikroprosesor. Host debug nulis data menyang kolom sing cocog kanggo entuk ngaso (haltreq), ngreset (ndmreset), nerusake (resumereq). Sampeyan njlèntrèhaké ing ngisor iki.
Tabel 7-4 definisi registrasi dekontrol
bit | jeneng | Akses | Katrangan | Reset Nilai |
31 | haltreq | WO | 0: Mbusak panjalukan ngaso
1: Kirimi panjalukan ngaso |
0 |
30 | resumereq | W1 | 0: Ora sah
1: Mulihake mikroprosesor saiki Wigati: Tulis 1 bener lan hardware wis dibusak sawise mikroprosesor mbalekake |
0 |
29 | dilindhungi | RO | dilindhungi | 0 |
28 | ackhavereset | W1 | 0: Ora sah
1: Mbusak bit status panen mikroprosesor |
0 |
[27:2] | dilindhungi | RO | dilindhungi | 0 |
1 | ndmreset | RW | 0: Mbusak reset
1: Reset kabeh sistem liyane saka modul debug |
0 |
0 | mateni | RW | 0: Reset modul debug
1: Modul Debug dianggo kanthi bener |
0 |
Daftar status modul debug (status dm)
- Register iki digunakake kanggo nunjukake status modul debug lan minangka register mung diwaca kanthi katrangan saben bit ing ngisor iki.
Tabel 7-5 Dhéfinisi daftar dmstatus
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:20] | dilindhungi | RO | dilindhungi | 0 |
19 | kabeh wis ngreset | RO | 0: Ora sah
1: Reset mikroprosesor |
0 |
18 | wis ngreset | RO | 0: Ora sah
1: Reset mikroprosesor |
0 |
17 | allresumeck | RO | 0: Ora sah
1: Reset mikroprosesor |
0 |
16 | anyresumeck | RO | 0: Ora sah
1: Reset mikroprosesor |
0 |
[15:14] | dilindhungi | RO | dilindhungi | 0 |
13 | aluvial | RO | 0: Ora sah
1: Mikroprosesor ora kasedhiya |
0 |
12 | sembarang entuk manfaat | RO | 0: Ora sah
1: Mikroprosesor ora kasedhiya |
0 |
11 | kabeh mlaku | RO | 0: Ora sah
1: Mikroprosesor mlaku |
0 |
10 | sembarang mlaku | RO | 0: Ora sah
1: Mikroprosesor mlaku |
0 |
9 | mandheg | RO | 0: Ora sah
1: Mikroprosesor ana ing suspensi |
0 |
8 | sembarang mandeg | RO | 0: Ora sah
1: Mikroprosesor metu saka suspensi |
0 |
7 | diotentikasi |
RO |
0: Otentikasi dibutuhake sadurunge nggunakake modul debug
1: Modul debugging wis disertifikasi |
0x1 |
[6:4] | dilindhungi | RO | dilindhungi | 0 |
[3:0] | versi | RO | Debugging sistem ndhukung arsitektur versi 0010: V0.13 | 0x2 |
Daftar status mikroprosesor (hartinfo)
Register iki digunakake kanggo nyedhiyakake informasi babagan mikroprosesor menyang host debug lan minangka register mung diwaca kanthi saben bit diterangake kaya ing ngisor iki.
Tabel 7-6 definisi register hartinfo
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:24] | dilindhungi | RO | dilindhungi | 0 |
[23:20] | ngeruk | RO | Jumlah ndhaftar scratch didhukung | 0x3 |
[19:17] | dilindhungi | RO | dilindhungi | 0 |
16 | DataAccess | RO | 0: Daftar data dipetakan menyang alamat CSR
1: Register data dipetakan menyang alamat memori |
0x1 |
[15:12] | ukuran data | RO | Jumlah register data | 0x2 |
[11:0] | data nambah |
RO |
Alamat offset saka data register data0,
alamat dhasar 0xe0000000, tundhuk maca tartamtu. |
0xXXX |
Kontrol printah abstrak lan daftar status (abstrak)
Register iki digunakake kanggo nuduhake eksekusi printah abstrak. Host debug bisa maca register iki kanggo ngerti apa printah abstrak pungkasan wis kaleksanan utawa ora lan bisa mriksa apa kesalahan kui sak eksekusi printah abstrak lan jinis kesalahan, kang diterangake ing rinci minangka nderek.
Tabel 7-7 abstrak ndhaftar definisi
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:29] | dilindhungi | RO | dilindhungi | 0 |
[28:24] | progbufsize | RO | Nuduhake nomer program buffer program
ndhaftar cache |
0x8 |
[23:13] | dilindhungi | RO | dilindhungi | 0 |
12 | sibuk | RO | 0: Ora ana printah abstrak sing ditindakake
1: Ana perintah abstrak sing ditindakake Cathetan: Sawise eksekusi, hardware wis dibusak. |
0 |
11 | dilindhungi | RO | dilindhungi | 0 |
[10:8] | cmder | RW | Tipe kesalahan printah abstrak 000: Ora ana kesalahan
001: Eksekusi printah abstrak kanggo nulis menyang printah, abstrak, registrasi otomatis abstrak utawa maca lan nulis menyang data lan daftar progbuf 010: Ora ndhukung printah abstrak saiki 011: Eksekusi printah abstrak kajaba 100: Mikroprosesor ora ditanggepi utawa ora kasedhiya lan ora bisa nglakokake printah abstrak 101: Kesalahan bus 110: Kesalahan bit parity sajrone komunikasi 111: Kesalahan liyane Cathetan: Kanggo nulis bit 1 digunakake kanggo mbusak nul. |
0 |
[7:4] | dilindhungi | RO | dilindhungi | 0 |
[3:0] | diskon | RO | Jumlah register data | 0x2 |
- Host debugging bisa ngakses GPRs, register CSR, lan memori kanthi nulis nilai konfigurasi sing beda menyang register printah abstrak.
- Nalika ngakses register, bit register printah ditetepake kaya ing ngisor iki.
- Tabel 7-8 Definisi register printah nalika ngakses register
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:24] | jinis cmd | WO | Tipe printah abstrak 0: Register akses;
1: Akses cepet (ora didhukung); 2: Akses menyang memori. |
0 |
23 | dilindhungi | WO | dilindhungi | 0 |
[22:20] | arsa | WO | Akses register data bit width 000: 8-bit
001: 16-dicokot 010: 32-dicokot |
0 |
011: 64-bit (ora didhukung) 100: 128-bit (ora didhukung)
Cathetan: Nalika ngakses register floating-point FPR, mung akses 32-bit sing didhukung. |
||||
19 | aarpostincrement | WO | 0: Ora ana efek
1: Tambah nilai regno kanthi otomatis sawise ngakses registrasi |
0 |
18 | pos eksekusi | WO | 0: Ora ana efek
1: Jalanake printah abstrak banjur jalanake printah ing progbuf |
0 |
17 | transfer | WO | 0: Aja nglakokaké operasi kasebut kanthi nulis
1: Nglakokake manipulasi sing ditemtokake kanthi nulis |
0 |
16 | nulis | WO | 0: Salin data saka register sing ditemtokake menyang data0 1: Salin data saka daftar data0 menyang daftar sing ditemtokake |
0 |
[15:0] | rego | WO | Nemtokake register akses 0x0000-0x0fff minangka CSR 0x1000-0x101f minangka GPR |
0 |
Nalika ngakses memori, bit ing register printah ditetepake minangka nderek.
Tabel 7-9 Definition saka printah Register nalika Ngakses memori
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:24] | jinis cmd | WO | Tipe printah abstrak 0: Register akses;
1: Akses cepet (ora didhukung); 2: Ngakses memori. |
0 |
23 | aamvirtual | WO | 0: Akses alamat fisik;
1: Akses alamat virtual. |
0 |
[22:20] | ukuran lengan | WO | Ngakses data memori ambane bit 000: 8-bit;
001: 16-dicokot; 010: 32-dicokot; 011: 64-bit (ora didhukung); 100: 128-bit (ora didhukung); |
0 |
19 | aampostincrement | WO | 0: Ora ana pengaruh;
1: Sawise ngakses memori kanthi sukses, tambahake alamat sing disimpen ing register data1 kanthi jumlah bita sing cocog karo ambane bit sing dikonfigurasi kanthi ukuran lengen. Aamsize=0, diakses dening byte, data1 plus 1. Aamsize=1, diakses kanthi setengah tembung, data1 ditambah 2. aamsize=2, diakses kanthi bit, data1 ditambah 4. |
0 |
18 | pos eksekusi | WO | 0: Ora ana pengaruh;
1: Jalanake printah ing progbuf sawise nglakokake printah abstrak. |
0 |
17 | Cadangan | RO | dilindhungi | 0 |
16 |
nulis |
WO |
0: Waca data saka alamat sing ditemtokake dening data1 nganti data0
1: Tulis data ing data0 menyang alamat sing ditemtokake dening data1. |
0 |
[15:14] |
target-tartamtu |
WO |
Definisi mode maca lan nulis Tulis:
00, 01: Tulis langsung menyang memori; 10: Sawise data ing data0 UTAWA karo bit data ing memori, asil ditulis ing memori (Mung akses tembung didhukung). 11: Sawise nyimpulake data ing data0 karo bit data ing memori, tulis asil menyang memori (Mung akses tembung sing didhukung). maca: 00, 01, 10, 11: Waca 0 langsung saka memori. |
0 |
[13:0] | Cadangan | RO | dilindhungi |
Register eksekusi otomatis printah abstrak (otomatis abstrak)
Register iki digunakake kanggo ngatur modul debugging. Nalika maca lan nulis progbufx lan data saka modul debugging, printah abstrak bisa kaleksanan maneh.
Katrangan saka register iki kaya ing ngisor iki:
Tabel 7-10 definisi register otomatis abstrak
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:16] | autoexecprogbuf | RW | Yen dicokot wis disetel, maca lan nulis progbufx cocog bakal nimbulaké printah abstrak ing ndhaftar printah kanggo kaleksanan maneh.
Cathetan: Seri V3 dirancang kanthi 8 progbuf, cocog karo bit [23:16]. |
0 |
[15:12] | Cadangan | RO | dilindhungi | 0 |
[11:0] | autoexecdata |
RW |
Yen dicokot disetel kanggo 1, maca lan nulis cocog ndhaftar data bakal nimbulaké printah abstrak ing ndhaftar Command bakal kaleksanan maneh.
Cathetan: seri V3 dirancang kanthi rong data register, cocog karo bit [1:0]. |
0 |
Register cache instruksi (progbufx)
Register iki digunakake kanggo nyimpen instruksi sembarang, lan masang operasi cocog, kalebu 8, kang perlu kanggo mbayar manungsa waé kanggo eksekusi pungkasan sing kudu "break" utawa "c.ebreak".
Tabel 7-11 progbuf ndhaftar definisi
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | progbuf | RW | Enkoding instruksi kanggo operasi cache, kang
bisa uga kalebu instruksi komprèsi |
0 |
Ngaso daftar status (haltsum0)
Register iki digunakake kanggo nunjukake apa mikroprosesor dilereni soko tugas utawa ora. Saben bit nuduhake status dilereni soko tugas saka microprocessor, lan nalika ana mung siji inti, mung bit paling saka register iki digunakake kanggo nunjukaké.
Tabel 7-12 haltsum0 ndhaftar definisi
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:1] | dilindhungi | RO | dilindhungi | 0 |
0 | mandeg0 | RO | 0: Mikroprosesor beroperasi kanthi normal
1: Mikroprosesor mandeg |
0 |
- Saliyane ndhaftar modul debug sing kasebut ing ndhuwur, fungsi debug uga kalebu sawetara ndhaptar CSR, utamane kontrol debug lan ndhaftar status dcsr lan dpc petunjuk instruksi debug, sing diterangake kanthi rinci kaya ing ngisor iki.
- Kontrol debug lan daftar status (dcsr)
Tabel 7-13 Définisi register dcsr
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:28] | xdebugver | DRO | 0000: Debugging eksternal ora didhukung 0100: Ndhukung debugging eksternal standar
1111: Debugging eksternal didhukung, nanging ora ketemu spesifikasi |
0x4 |
[27:16] | dilindhungi | DRO | dilindhungi | 0 |
15 | putus | DRW | 0: Printah break ing mode mesin tumindak minangka diterangake ing hak istimewa file
1: Printah break ing mode mesin bisa ngetik mode debug |
0 |
[14:13] | dilindhungi | DRO | dilindhungi | 0 |
12 | putus |
DRW |
0: Printah break ing mode pangguna tumindak kaya sing diterangake ing hak istimewa file
1: Perintah break ing mode pangguna bisa mlebu mode debug |
0 |
11 | langkah | DRW | 0: Interrupts dipateni ing siji-langkah debugging
1: Aktifake interrupts ing siji-langkah debugging |
0 |
10 | dilindhungi | DRO | dilindhungi | 0 |
9 | wektu mandheg | DRW | 0: Timer sistem mlaku ing mode Debug
1: Timer sistem mandheg ing mode Debug |
0 |
[8:6] | sabab | DRO | Alasan kanggo ngetik debugging
001: Ngetik debugging ing wangun perintah break (prioritas 3) 010: Ngetik debugging ing wangun modul pemicu (prioritas 4, paling dhuwur) 011: Ngetik debugging ing wangun panyuwunan ngaso (prioritas 1) 100: debugging ing wangun single-step debugging (prioritas 0, paling murah) |
0 |
101: ketik mode debug langsung sawise microprocessor reset (prioritas 2) Liyane: Reserved | ||||
[5:3] | dilindhungi | DRO | dilindhungi | 0 |
2 | langkah | DRW | 0: Pateni debugging siji-langkah
1: Aktifake single-step debugging |
0 |
[1:0] | Prev | DRW | Mode hak istimewa 00: Mode pangguna
01: Mode Supervisor (ora didhukung) 10: Reserved 11: Mode mesin Cathetan: Rekam mode istimewa nalika ngetik mode debug, debugger bisa ngowahi nilai iki kanggo ngowahi mode istimewa nalika metu saka debug |
0 |
Debug mode program pointer (DPC)
- Register iki digunakake kanggo nyimpen alamat instruksi sabanjuré bakal kaleksanan sawise microprocessor lumebu ing mode debug, lan regane dianyari karo aturan beda gumantung ing alesan kanggo ngetik debug. dpc register diterangake ing rinci minangka nderek.
Tabel 7-14 dhéfinisi register dpc
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | DPC | DRW | Alamat instruksi | 0 |
Aturan kanggo nganyari register ditampilake ing tabel ing ngisor iki.
Tabel 7-15 aturan nganyari dpc
Ketik cara debugging | aturan nganyari dpc |
putus | Alamat instruksi Ebreak |
langkah siji | Alamat instruksi instruksi sabanjure instruksi saiki |
modul pemicu | Ora didhukung kanggo sementara |
mandegake panjaluk | Alamat instruksi sabanjure sing bakal ditindakake nalika ngetik Debug |
Antarmuka Debug
- Beda karo standar JTAG antarmuka ditetepake dening RISC-V, QingKe V3 seri microprocessor adopts 1- kabel / 2-kabel antarmuka debug serial lan nderek WCH debug antarmuka protokol V1.0.
- Antarmuka debug tanggung jawab kanggo komunikasi antarane inang debug lan modul debug lan nyadari operasi maca / nulis saka inang debug kanggo ndhaftar modul debug.
- WCH ngrancang WCH_Link lan mbukak sumber skema lan program binar files, kang bisa digunakake kanggo debugging kabeh microprocessors arsitektur RISC-V.
- Deleng Manual Protokol Debug WCH kanggo protokol antarmuka debug tartamtu.
Daftar CSR Register
- Arsitektur RISC-V nemtokake sawetara Register Kontrol lan Status (CSR) kanggo ngontrol lan ngrekam status operasi mikroprosesor.
- Sawetara CSR wis ngenalaken ing bagean sadurungé, lan bab iki bakal rinci CSR ndhaftar dileksanakake ing QingKe V3 microprocessors seri.
Daftar CSR Register
Tabel 8-1 Daftar Register CSR Mikroprosesor
Jinis | jeneng | CSR alamat | Akses | Katrangan |
RISC-V
CSR standar |
marchid | 0xf12 | MRO | Register nomer arsitektur |
mimpid | 0xf13 | MRO | Register penomoran implementasi hardware | |
status | 0x300 | MRW | Ndhaptar status | |
misa | 0x301 | MRW | Register set instruksi hardware | |
mtvec | 0x305 | MRW | Register alamat basis pangecualian | |
mscratch | 0x340 | MRW | Mode mesin staging register | |
MEPC | 0x341 | MRW | Register pointer program pengecualian | |
sebabe | 0x342 | MRW | Register sabab pangecualian | |
mtval | 0x343 | MRW | Register nilai pangecualian | |
pmpcfg | 0x3A0+i | MRW | Register konfigurasi PMP | |
pmpaddr | 0x3B0+i | MRW | Register alamat PMP | |
milih | 0x7a0 | MRW | Register pilihan pemicu debug | |
tdata1 | 0x7a1 | MRW | Register data pemicu debug 1 | |
tdata2 | 0x7a2 | MRW | Register data pemicu debug 2 | |
dcsr | 0x7b0 | DRW | Kontrol debug lan daftar status | |
dpc | 0x7b1 | DRW | Debug mode program pointer register | |
dscratch0 | 0x7b2 | DRW | Mode debug stagdaftar 0 | |
dscratch1 | 0x7b3 | DRW | Mode debug stagdaftar 1 | |
Vendor ditetepake CSR |
gintenr | 0x800 | URW | Interrupt global ngaktifake ndhaptar |
intsyscr | 0x804 | URW | Register kontrol sistem interrupt | |
corecfgr | 0xBC0 | MRW | Register konfigurasi mikroprosesor | |
inestcr | 0xBC1 | MRW | Register kontrol nested interrupt |
Register CSR Standar RISC-V
- Daftar Nomer Arsitektur (Marchid)
- Register iki minangka registrasi mung diwaca kanggo nunjukake nomer arsitektur hardware mikroprosesor saiki, sing utamane dumadi saka kode vendor, kode arsitektur, kode seri, lan kode versi. Saben-saben ditetepake kaya ing ngisor iki.
Tabel 8-2 definisi register marchid
bit | jeneng | Akses | Katrangan | Reset Nilai |
31 | dilindhungi | MRO | dilindhungi | 1 |
[30:26] | Vender0 | MRO | Kode Produsen 0
Ndandani kode huruf "W". |
0x17 |
[25:21] | Vender1 | MRO | Kode Produsen1
Ndandani kode huruf "C". |
0x03 |
[20:16] | Vender2 | MRO | Kode Produsen 2
Ndandani kode huruf "H". |
0x08 |
15 | dilindhungi | MRO | dilindhungi | 1 |
[14:10] | Arch | MRO | Kode arsitektur | 0x16 |
Arsitèktur RISC-V tetep nganggo kode huruf "V". | ||||
[9:5] | Serial | MRO | Kode seri
Seri QingKe V3, tetep ing nomer "3" |
0x03 |
[4:0] | Versi | MRO | Kode versi
Bisa dadi versi "A", "B", "C" lan huruf kode liyane |
x |
Nomer pabrikan lan nomer versi abjad, lan nomer seri iku numerik. Tabel pengkodean aksara kapacak ing tabel ing ngisor iki.
Tabel 8-3 Tabel Pemetaan Abjad
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 |
- Antarane wong-wong mau, QingKe V3A microprocessor, register maca bali menyang 0.
Register penomoran implementasi hardware (limpid)
- Register iki utamané dumadi saka kode vendor, saben kang ditetepake minangka nderek.
Tabel 8-4 definisi register limpid
bit | jeneng | Akses | Katrangan | Reset Nilai |
31 | dilindhungi | MRO | dilindhungi | 1 |
[30:26] | Vender0 | MRO | Kode Produsen 0
Ndandani kode huruf "W". |
0x17 |
[25:21] | Vender1 | MRO | Kode Produsen1
Ndandani kode huruf "C". |
0x03 |
[20:16] | Vender2 | MRO | Kode Produsen 2
Ndandani kode huruf "H". |
0x08 |
15 | dilindhungi | MRO | dilindhungi | 1 |
[14:8] | dilindhungi | MRO | dilindhungi | 0 |
[7:4] | cilik | MRO | Nomer subversion | 0xX |
[3:0] | Mayor | MR0 | Nomer versi utama | 0xX |
- Register iki bisa diwaca ing sembarang implementasine mesin, lan ing prosesor seri QingKe V3A, register iki maca bali menyang nul.
Register status mode mesin (mstatus)
- Register iki sebagian wis diterangake ing bagean sadurunge, lan wong-wong mau dipanggonke kaya ing ngisor iki.
Tabel 8-5 definisi registrasi status
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:13] | dilindhungi | MRO | dilindhungi | 0 |
[12:11] | MPP | MRW | Mode istimewa sadurunge mlebu istirahat | 0 |
[10:8] | dilindhungi | MRO | dilindhungi | 0 |
7 | MPIE | MRW | Ngaktifake status interrupt sadurunge ngetik interupsi | 0 |
[6:4] | dilindhungi | MRO | dilindhungi | 0 |
3 | MIE | MRW | Ngaktifake gangguan mode mesin | 0 |
[2:0] | dilindhungi | MRO | dilindhungi | 0 |
- Kolom MPP digunakake kanggo nyimpen mode istimewa sadurunge ngetik pangecualian utawa interupsi lan digunakake kanggo mulihake mode istimewa sawise metu saka pangecualian utawa interupsi. MIE minangka bit ngaktifake interrupt global, lan nalika ngetik pengecualian utawa interupsi, nilai MPIE dianyari dadi nilai MIE, lan kudu dicathet yen ing mikroprosesor seri QingKe V3, MIE ora bakal dianyari nganti 0 sadurunge tingkat pungkasan nested interrupts kanggo mesthekake yen nesting interrupt ing mode Machine terus kaleksanan. Nalika pangecualian utawa interupsi wis metu, microprocessor bali menyang mode Machine disimpen dening MPP, lan MIE dibalèkaké menyang Nilai MPIE.
- Mikroprosesor QingKe V3 ndhukung mode Mesin lan mode Panganggo, yen sampeyan kudu nggawe mikroprosesor mung bisa digunakake ing mode Mesin, sampeyan bisa nyetel MPP dadi 0x3 ing wiwitan boot. file, yaiku, sawise bali, bakal tetep ing mode Mesin.
Register set instruksi hardware (misa)
- Register iki digunakake kanggo nunjukake arsitektur mikroprosesor lan ekstensi set instruksi sing didhukung, saben diterangake kaya ing ngisor iki.
Tabel 8-6 misa register definisi
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:30] | MXL | MRO | Tembung mesin dawane 1:32
2:64 3:128 |
1 |
[29:26] | dilindhungi | MRO | dilindhungi | 0 |
[25:0] | Ekstensi | MRO | Ekstensi set instruksi | x |
- MXL digunakake kanggo nunjukake dawa tembung mikroprosesor, QingKe V3 minangka mikroprosesor 32-bit, lan domain kasebut tetep dadi 1.
- Ekstensi digunakake kanggo nunjukake yen mikroprosesor ndhukung rincian set instruksi lengkap, saben nuduhake kelas ekstensi, katrangan rinci ditampilake ing tabel ing ngisor iki.
Tabel 8-7 Instruction Set Details Extension
bit | jeneng | Katrangan |
0 | A | Ekstensi atom |
1 | B | Tentatif dilindhungi undhang-undhang kanggo ekstensi Bit-Manipulasi |
2 | C | Ekstensi sing dikompres |
3 | D | Ekstensi floating-point presisi kaping pindho |
4 | E | RV32E basis ISA |
5 | F | Ekstensi floating-point presisi tunggal |
6 | G | Ekstensi standar tambahan saiki |
7 | H | Ekstensi Hypervisor |
8 | I | RV32I / 64I / 128I basis ISA |
9 | J | Tentatif dilindhungi undhang-undhang kanggo ekstensi Basa Terjemahan Dinamis |
10 | K | dilindhungi |
11 | L | Tentatively dilindhungi undhang-undhang kanggo extension Decimal Floating-Point |
12 | M | Ekstensi Integer Multiply/Divide |
13 | N | Interrupts tingkat pangguna didhukung |
14 | O | dilindhungi |
15 | P | Tentatively dilindhungi undhang-undhang kanggo extension Packed-SIMD |
16 | Q | Ekstensi floating-point quad-precision |
17 | R | dilindhungi |
18 | S | Mode Supervisor dileksanakake |
19 | T | Tentatively dilindhungi undhang-undhang kanggo extension Memori Transaksional |
20 | U | Mode pangguna dileksanakake |
21 | V | Tentatively dilindhungi undhang-undhang kanggo extension Vector |
22 | W | dilindhungi |
23 | X | Ekstensi non-standar saiki |
24 | Y | dilindhungi |
25 | Z | dilindhungi |
- Kanggo example, kanggo QingKe V3A microprocessor, Nilai ndhaftar 0x401001105, kang tegese arsitektur pesawat instruction didhukung RV32IMAC, lan wis implementasine mode Panganggo.
Register alamat basis pengecualian mode mesin (mtvec)
- Register iki digunakake kanggo nyimpen alamat dhasar saka pangecualian utawa ngganggu handler lan rong bit ngisor digunakake kanggo ngatur mode lan cara identifikasi saka Tabel vektor minangka diterangake ing bagean 3.2.
Mode mesin staging register (mscratch)
Tabel 8-8 definisi register mscratch
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | mscratch | MRW | Panyimpenan data | 0 |
Register iki minangka register 32-bit sing bisa diwaca lan bisa ditulis ing mode mesin kanggo panyimpenan data sauntara. Kanggo example, nalika ngetik pangecualian utawa ngganggu handler, pangguna tumpukan pitunjuk SP disimpen ing ndhaftar iki lan ngganggu pitunjuk tumpukan diutus kanggo SP ndhaptar. Sawise metu saka pangecualian utawa ngganggu, mulihake nilai SP penumpukan pangguna saka ngeruk. Yaiku, tumpukan interupsi lan tumpukan pangguna bisa diisolasi.
Register pointer program pengecualian mode mesin (peta)
Tabel 8-9 definisi register mepc
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | mepc | MRW | Pointer prosedur pangecualian | 0 |
- Register iki digunakake kanggo nyimpen penunjuk program nalika ngetik pangecualian utawa interupsi.
- Iki digunakake kanggo nyimpen pitunjuk PC instruksi sadurunge ngetik pangecualian nalika pangecualian utawa interupsi digawe, lan mepc digunakake minangka alamat bali nalika pangecualian utawa interupsi ditangani lan digunakake kanggo pangecualian utawa interupsi bali.
- Nanging, penting kanggo dicathet.
- Nalika ana pangecualian, mepc dianyari menyang nilai PC saka instruksi sing saiki ngasilake pangecualian.
- Nalika ana gangguan, mepc dianyari kanggo Nilai PC saka instruksi sabanjuré.
- Nalika sampeyan kudu bali pangecualian sawise ngolah pangecualian, sampeyan kudu mbayar manungsa waé kanggo ngowahi nilai mepc, lan rincian liyane bisa ditemokaké ing bab 2 Pangecualian.
Register sabab pangecualian mode mesin (mcause)
Tabel 8-10 mcause ndhaftar definisi
bit | jeneng | Akses | Katrangan | Reset Nilai |
31 | ngganggu | MRW | Kolom indikasi interupsi 0: Pangecualian
1: Gangguan |
0 |
[30:0] | Kode Pangecualian | MRW | Kanggo kode pangecualian, deleng Tabel 2-1 kanggo rincian | 0 |
- Register iki utamané dipigunakaké kanggo nyimpen sabab saka pangecualian utawa nomer interrupt saka interupsi. Bit paling dhuwur yaiku lapangan Interrupt, sing digunakake kanggo nunjukake manawa kedadeyan saiki minangka pangecualian utawa interupsi.
- Bit ngisor minangka kode pangecualian, sing digunakake kanggo nunjukake sabab tartamtu. Rincian kasebut bisa ditemokake ing Bab 2 Pengecualian.
Register nilai pengecualian mode mesin (mtval)
Tabel 8-11 Définisi register mtval
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | mtval | MRW | Nilai pangecualian | 0 |
- Register iki digunakake kanggo nahan nilai sing nyebabake pangecualian nalika ana pangecualian. Kanggo rincian kayata regane lan wektu panyimpenan, waca Bab 2 Pangecualian.
Register konfigurasi PMP (pmpcfg
- Register iki utamané digunakake kanggo ngatur unit pangayoman memori fisik, lan saben 8 bit saka register iki digunakake kanggo ngatur pangayoman saka wilayah. Mangga deleng Bab 4 kanggo definisi rinci.
Daftar alamat PMP (pmpaddr
- Register iki utamané dipigunakaké kanggo konfigurasi alamat saka unit pangayoman memori fisik, kang encode ndhuwur 32 bit alamat fisik 34-dicokot. Mangga deleng Bab 4 kanggo cara konfigurasi tartamtu.
Debug mode program pointer register (DPC)
- Register iki digunakake kanggo nyimpen alamat instruksi sabanjure sing bakal dieksekusi sawise mikroprosesor mlebu
- Mode debug lan regane dianyari kanthi aturan sing beda-beda gumantung saka alesan kanggo ngetik debug. Waca Bagean 6.1 kanggo katrangan rinci.
Debug pemicu pilih register (pilih)
- Iku mung bener kanggo microprocessors sing ndhukung breakpoints hardware lan ndhukung breakpoints 4-saluran paling, lan ngisor 2 bit bener.
- Nalika ngatur saben breakpoint saluran, sampeyan kudu milih saluran sing cocog liwat register iki sadurunge konfigurasi.
Tabel 8-12 pilih register definition
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:2] | dilindhungi | MRO | dilindhungi | 0 |
[1:0] |
PILIH |
MRW |
Register pilihan saluran breakpoint dikonfigurasi, yaiku, sawise saluran sing cocog dipilih, register tdata1 lan tdata2 bisa dioperasikake kanggo ngatur breakpoint.
informasi. |
X |
Register data pemicu debug 1(tdata1)
Iku mung bener kanggo mikroprosesor sing ndhukung breakpoints hardware. Mikroprosesor mung ndhukung alamat instruksi lan breakpoints alamat data, ing ngendi TYPE bit saka tdata1 register minangka nilai tetep 2, lan bit liyane cocog karo definisi kontrol ing standar debugging.
Tabel 8-13 tdata1 dhéfinisi register
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:28] | JENIS | MRO | Definisi jinis breakpoint, jinis kontrol. | 0x2 |
27 |
DMODE |
MRO |
0: Register sing cocog saka flip-flop bisa diowahi ing mode mesin lan mode debugging;
1: Mung mode debug sing bisa ngowahi daftar sing cocog kanggo flip-flop. |
1 |
[26:21] |
MASKMAX |
MRO |
Nalika MATCH = 1, sawetara daya eksponensial maksimum sing cocog diijini, yaiku, jarak sing cocog maksimal sing diidini yaiku 231 bita. |
0x1f |
[20:13] | dilindhungi | MRO | dilindhungi | 0 |
12 |
TINDAKAN |
MRW |
Setel mode pangolahan nalika micu breakpoint:
0: Nalika micu, ketik breakpoint lan nelpon maneh interupsi; 1: Ketik mode debugging nalika dipicu. |
0 |
[11:8] | dilindhungi | MRO | dilindhungi | 0 |
7 |
PERTANDINGAN |
MRW |
Konfigurasi kabijakan sing cocog:
0: Cocokake nalika nilai pemicu padha karo TDATA2; 1: Nilai pemicu cocog karo bit m dhuwur saka TDATA2, ngendi m = 31-n, lan n iku 0 kutipan pisanan TDATA2 (wiwit saka dicokot kurang). |
0 |
6 |
M |
MRW |
Aktifake flip-flop ing mode M:
0: Pateni pemicu ing mode M; 1: Aktifake pemicu ing mode M. |
0 |
[5:4] | dilindhungi | MRO | dilindhungi | 0 |
3 |
U |
MRW |
Aktifake pemicu ing mode U:
0: Pateni pemicu ing mode U; 1: Aktifake pemicu ing mode U. |
0 |
2 |
NGLAKOKE |
MRW |
Instruksi maca alamat pemicu aktif: 0: Pateni;
1: Aktifake. |
0 |
1 |
TOKO |
MRW |
Data nulis alamat pemicu diaktifake: 0: Pateni;
1: Aktifake. |
0 |
0 |
MUNGKIN |
MRW |
Data maca alamat pemicu diaktifake: 0: Pateni;
1: Aktifake. |
0 |
Register data pemicu debug 2(tdata2)
Iku mung bener kanggo microprocessors sing ndhukung breakpoints hardware lan digunakake kanggo nyimpen Nilai cocog pemicu.
Tabel 8-14 tdata2 dhéfinisi register
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | TDATA2 | MRW | Digunakake kanggo nyimpen nilai sing cocog. | X |
Kontrol debug lan daftar status (dcsr)
Register iki digunakake kanggo ngontrol lan ngrekam status mlaku saka mode debugging. Deleng bagean 7.1 kanggo rincian.
Debug mode program pointer (DPC)
Register iki digunakake kanggo nyimpen alamat instruksi sabanjuré bakal kaleksanan sawise microprocessor lumebu ing mode debugging, regane beda miturut alasan kanggo ngetik mode debugging, lan aturan nganyari uga beda. Waca Bagean 7.1 kanggo katrangan rinci.
Mode debug staging register (dscratch0-1)
Klompok ndhaptar iki digunakake kanggo panyimpenan sementara data ing mode Debug.
Tabel 8-15 dscratch0-1 ndhaftar definisi
bit | jeneng | Akses | Katrangan | Reset Nilai |
[31:0] | dscratch | DRW | Data mode debug staging nilai | 0 |
Register CSR sing ditemtokake pangguna
Mode pangguna global interrupt enable register (gintenr)
- Register iki digunakake kanggo ngontrol ngaktifake lan topeng gangguan global. Aktifake lan topeng gangguan global ing mode mesin bisa dikontrol dening bit MIE lan MPIE ing status, nanging ndhaftar iki ora bisa dilakokno ing mode pangguna.
- Nalika interrupt global mbisakake register gintenr punika pemetaan MIE lan MPIE ing status.
- Ing mode pangguna, maksud bisa digunakake kanggo nyetel lan mbusak MIE lan MPIE, kaya sing diterangake ing Bagean 3.2 kanggo rincian.
Cathetan
- Interrupts global ora kalebu unmasked interrupts NMI lan pangecualian.
Register kontrol sistem interrupt (intsyscr)
Register iki utamané dipigunakaké kanggo ngatur ambane nesting interrupt, penet tumpukan hardware, lan fungsi liyane sing gegandhengan, kaya sing diterangake ing Bagean 3.2 kanggo rincian.
Register konfigurasi mikroprosesor (corecfgr)
Register iki digunakake kanggo ngontrol apa NMI interupsi diijini sawise interupsi overflows lan apa panjalukan interupsi wis dibusak nalika instruksi pager wis kaleksanan. Mangga deleng bagean 3.2 kanggo definisi tartamtu.
Register kontrol bersarang interrupt (inestcr)
Register iki digunakake kanggo nunjukaké status nesting interrupted lan apa overflows utawa ora, lan kanggo ngontrol tingkat nesting maksimum. Mangga deleng bagean 3.2 kanggo definisi tartamtu.
Dokumen / Sumber Daya
![]() |
Mikroprosesor WH V3 [pdf] Manual pangguna V3 Mikroprosesor, V3, Mikroprosesor |