WH V3 mikroprocesor

Specifikacije
- Model mikroprocesora: QingKeV3
- verzija: V1.2
- ISA karakteristike:
- Cjevovod FPU
- Predviđanje grane
- Podrška za prekide
- HPE Physical Memory Protection (PMP)
- Režim niske potrošnje energije
- Otklanjanje grešaka proširenog skupa instrukcija
Upute za upotrebu proizvoda
Gotovoview od QingKe V3 mikroprocesora
Mikroprocesori serije QingKe V3 uključuju modele V3A, V3B i V3C. Svaki model ima specifične karakteristike i razlike u zavisnosti od njegove primene.
Set instrukcija
RV32I skup instrukcija uključuje 32 seta registara od x0 do x31. Serija V3 ne podržava ekstenziju s pomičnim zarezom (F). Svaki registar je veličine 32 bita.
Register Set
RV32I set registara sastoji se od sljedećih registara.
- x0: Tvrdo kodirano 0
- x1: Povratna adresa
- x2: pokazivač steka
- x3: Globalni pokazivač
- x4: Pokazivač niti
- x5-x7: Privremeni registri
- x8: Sačuvajte registar/pokazivač okvira
- x9: Sačuvajte parametre registra/funkcije/povratne vrijednosti
- x10-x11: Parametri funkcije
- x12-x17: Sačuvajte registre
- x18-x27: Privremeni registri
- x28-x31: Registar pozivatelja/poziva
Privilege Mode
Standardna RISC-V arhitektura uključuje tri privilegovana režima: mašinski režim, nadzorni režim i korisnički režim. Mikroprocesori serije QingKe V3 podržavaju Machine mode i Supervisor mode.
Često postavljana pitanja
P: Koji su različiti modeli mikroprocesora QingKe V3 serije?
A: QingKe V3 serija uključuje modele V3A, V3B i V3C, svaki sa specifičnim karakteristikama i razlikama detaljno opisanim u korisničkom priručniku.
P: Koliko skupova registara je dostupno u setu instrukcija RV32I?
A: RV32I skup instrukcija pruža 32 seta registara od x0 do x31.
P: Koje privilegovane režime podržava QingKe V3 mikroprocesor?
A: Mikroprocesori serije QingKe V3 podržavaju Machine mode i Supervisor mode kao dio RISC-V arhitekture.
Gotovoview
Mikroprocesori QingKe V3 serije su samorazvijeni 32-bitni MCU mikroprocesori opšte namene zasnovani na standardnoj arhitekturi RISC-V skupa instrukcija. Ova serija uključuje V3A, V3B i V3C, od kojih V3A podržava proširenje standardnog skupa instrukcija RV32IMAC, a V3B/C podržava proširenje standardnog skupa instrukcija RV32IMCB i proširenje prilagođenog skupa instrukcija XW. Oba podržavaju množenje u jednom ciklusu i hardversku podelu, pored hardverskog pritiska (HPE), prekidanja bez tabele (VTF), modernizovanih 1- i 2-žičnih interfejsa za otklanjanje grešaka, “WFE” instrukcija i drugih posebnih karakteristika. Osim toga, podržava i Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), modernizovani 1-/2-wire interfejs za otklanjanje grešaka i podršku za “WFE” instrukcije.
Karakteristike
| Karakteristike | Opis |
| ISA | RV32IM[A]C[B] |
| Pipeline | 3 |
| FPU | Nije podržano |
| Predviđanje grane | Statičko predviđanje grananja |
| Prekini | Podržava ukupno 256 prekida uključujući izuzetke i podržava VTF |
| HPE | Podržava 2 nivoa HPE |
| Zaštita fizičke memorije (PMP) | Podržano |
| Režim niske potrošnje energije | Podržava režime spavanja i dubokog spavanja i podržava WFI i WFE metode spavanja |
| Prošireni set instrukcija | Podržano |
| Otklanjanje grešaka | 1/2-wire SDI, standardni RISC-V debug |
Gotovoview
QingKe V3 serija mikroprocesora uključuje V3A, V3B i V3C, postoje neke razlike između serija prema aplikaciji, specifične razlike su detaljno prikazane u Tabeli 1-1.
Tabela 1-1 Prekoview mikroprocesora QingKe V3
| Feature Model | ISA | HPE broj nivoa | Prekidi gniježđenje broj nivoa | VTF broj kanala | Pipeline | Vector stolni način | Prošireno uputstvo (XW) | Broj područja zaštite memorije |
| V3A | RV32IMAC | 2 | 2 | 4 | 3 | Uputstvo | × | × |
| V3B | RV32IMCB | 2 | 2 | 4 | 3 | Adresa/Uputa | √ | × |
| V3C | RV32IMCB | 2 | 2 | 4 | 3 | Adresa/Uputa | √ | 4 |
Napomena: Prebacivanje OS zadataka općenito koristi stack push, što nije ograničeno na broj nivoa
Set instrukcija
- Mikroprocesori serije QingKe V3 prate standardnu RISC-V arhitekturu skupa instrukcija (ISA). Detaljna dokumentacija standarda može se naći u “Priručniku za RISC-V set instrukcija, tom I: ISA na korisničkom nivou, verzija dokumenta 2.2” na RISC-V International website. RISC-V skup instrukcija ima jednostavnu arhitekturu i podržava modularni dizajn, omogućavajući fleksibilne kombinacije zasnovane na različitim potrebama, a serija V3 podržava sljedeća proširenja skupa instrukcija.
- RV32: 32-bitna arhitektura, širina bita registra opšte namjene od 32 bita
- I: Podržava operaciju oblikovanja, sa 32 registra za oblikovanje
- M: Podržava oblikovanje instrukcija za množenje i dijeljenje
- A: Podržava atomske komande
- C: Podržava 16-bitnu instrukciju kompresije
- B: Podrška za upute za manipulaciju bitovima
- XW: 16-bitne upute za kompresiju za samoproširujuće operacije bajtova i poluriječi
Napomena:
- Podskup instrukcija koje podržavaju različiti modeli može biti različit, molimo pogledajte tabelu 1-1 za detalje;
- Da biste dodatno poboljšali gustinu koda, proširite XW podskup, dodajte sljedeće upute za kompresiju c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop, čija upotreba treba biti zasnovana na MRS kompajleru ili lancu alata koji on pruža;
- V3B podržava izdvajanje instrukcije riječi (32 bita) iz dvostruke riječi (64 bita) i izdvajanje instrukcije riječi (32 bita) iz rezultata množenja (64 bita). Specifična metoda upotrebe može se odnositi na bibliotečku funkciju i sarađivati sa MRS kompajlerom ili lancem alata koji on obezbeđuje;
- V3B/C podržava instrukcije za kopiranje memorije. Za konkretnu upotrebu, pogledajte funkciju biblioteke i surađujte sa MRS kompajlerom ili njegovim alatnim lancem.
Register Set
RV32I ima 32 seta registara od x0-x31. Serija V3 ne podržava ekstenziju “F”, tj. ne postoji set registra s pomičnim zarezom. U RV32, svaki registar je 32 bita. Tabela 1-2 ispod navodi registre RV32I i njihove opise.
Tabela 1-2 RISC-V registri
| Registrirajte se | ABI ime | Opis | Storer |
| x0 | nula | Tvrdo kodirano 0 | – |
| x1 | ra | Povratna adresa | Caller |
| x2 | sp | Pokazivač steka | Callee |
| x3 | GP | Globalni pokazivač | – |
| x4 | tp | Pokazivač niti | – |
| x5-7 | t0-2 | Privremeni registar | Caller |
| x8 | s0/fp | Sačuvajte registar/pokazivač okvira | Callee |
| x9 | s1 | Sačuvaj registar | Callee |
| x10-11 | a0-1 | Parametri funkcije/povratne vrijednosti | Caller |
| x12-17 | a2-7 | Parametri funkcije | Caller |
| x18-27 | a2-11 | Sačuvaj registar | Callee |
| X28-31 | t3-6 | Privremeni registar | Caller |
Atribut Caller u gornjoj tabeli znači da pozvana procedura ne sprema vrijednost registra, a Callee atribut znači da pozvana procedura sprema registar.
Privilege Mode
- Standardna RISC-V arhitektura uključuje tri privilegovana režima: Mašinski režim, Nadzorni režim i Korisnički režim, kao što je prikazano u Tabeli 1-3 ispod.
- Mašinski režim je obavezan, a ostali režimi su opcioni. Za detalje, možete pogledati The RISC-V Set Instruction Manual Volume II: Privileged Architecture”, koji se može besplatno preuzeti sa RISC-V International website.
Tabela 1-3 Način privilegija RISC-V arhitekture
| Kod | Ime | Skraćenice |
| 0b00 | Korisnički način rada | U |
| 0b01 | Model supervizora | S |
| 0b10 | Rezervirano | Rezervirano |
| 0b11 | Mašinski način rada | M |
- Mikroprocesori serije QingKe V3 podržavaju dva od ovih privilegovanih režima.
Mašinski način rada
- Mašinski način rada ima najveće ovlaštenje, program u ovom načinu može pristupiti svim kontrolnim i statusnim registrima (CSR), ali također može pristupiti svim područjima fizičke adrese.
- Podrazumevano uključenje je u mašinskom režimu, kada se izvršavanje mret (instrukcija za povratak u mašinski način) vrati, u skladu sa statusom registra CSR (registar statusa režima mašine) u MPP bitu, ako je MPP = 0b00, izađite iz mašinskog režima u korisnički režim, MPP = 0b11, a zatim nastavite da zadržite mašinski režim.
Korisnički način rada
- Korisnički način rada ima najnižu privilegiju i samo ograničenim CSR registrima se može pristupiti u ovom načinu. Kada dođe do izuzetka ili prekida, mikroprocesor prelazi iz korisničkog načina u strojni način kako bi upravljao izuzecima i prekidima.
CSR registar
Niz CSR registara je definisan u RISC-V arhitekturi za kontrolu i snimanje radnog stanja mikroprocesora. Ovi CSR-ovi se mogu proširiti za 4096 registara koristeći interni namjenski 12-bitni adresni kodni prostor. I koristite dva visoka CSR[11:10] da definišete dozvolu čitanja/pisanja ovog registra, 0b00, 0b01, 0b10 za dozvoljeno čitanje/pisanje i 0b11 za samo čitanje. Koristite dva bita CSR[9:8] da definišete najniži nivo privilegija koji može pristupiti ovom registru, a vrednost odgovara režimu privilegija definisanom u Tabeli 1-3. CSR registri implementirani u QingKe V3 mikroprocesor su detaljno opisani u poglavlju 8.
Izuzetak
Mehanizam izuzetaka, koji je mehanizam za presretanje i rukovanje “neobičnim radnim događajima”. Mikroprocesori serije QingKe V3 opremljeni su sistemom odziva na izuzetak koji može da obradi do 256 izuzetaka, uključujući prekide. Kada dođe do izuzetka ili prekida, mikroprocesor može brzo odgovoriti i rukovati događajima izuzetka i prekida.
Vrste izuzetaka
Ponašanje hardvera mikroprocesora je isto bilo da se dogodi izuzetak ili prekid. Mikroprocesor suspenduje trenutni program, prelazi na obrađivač izuzetaka ili prekida i vraća se na prethodno suspendovani program kada se obrada završi. Uopšteno govoreći, prekidi su također dio izuzetaka. Može li biti tačno da li je trenutna pojava prekid ili izuzetak viewed kroz uzrok registra izuzetka u načinu rada stroja. mcause[31] je polje prekida, koje se koristi da označi da li je uzrok izuzetka prekid ili izuzetak. mcause[31]=1 znači prekid, mcause[31]=0 znači izuzetak. mcause[30:0] je kod izuzetka, koji se koristi za označavanje specifičnog uzroka izuzetka ili broja prekida, kao što je prikazano u sljedećoj tabeli.
Tabela 2-1 V3 kodovi izuzetaka mikroprocesora
| Prekini | Izuzetak kodovi | Sinhroni / Asinhroni | Razlog za izuzetak |
| 1 | 0-1 | – | Rezervirano |
| 1 | 2 | Precizno asinhroni | NMI prekida |
| 1 | 3-11 | – | Rezervirano |
| 1 | 12 | Precizno asinhroni | SysTick prekida |
| 1 | 13 | – | Rezervirano |
| 1 | 14 | Sinhroni | Softverski prekida |
| 1 | 15 | – | Rezervirano |
| 1 | 16-255 | Precizno asinhroni | Vanjski prekid 16-255 |
| 0 | 0 | Sinhroni | Neusklađenost adrese instrukcija |
| 0 | 1 | Sinhroni | Dohvati grešku pristupa komandi |
| 0 | 2 | Sinhroni | Nezakonita uputstva |
| 0 | 3 | Sinhroni | Tačke prekida |
| 0 | 4 | Sinhroni | Neusklađenost adrese pristupa instrukciji za učitavanje |
| 0 | 5 | Neprecizni asinhroni | Greška pristupa komandi učitavanja |
| 0 | 6 | Sinhroni | Neusklađenost adrese pristupa Store/AMO instrukcijama |
| 0 | 7 | Neprecizni asinhroni | Greška pristupa Store/AMO komandi |
| 0 | 8 | Sinhroni | Poziv okruženja u korisničkom načinu rada |
| 0 | 11 | Sinhroni | Poziv okoline u mašinskom režimu |
- Sinhroni” u tabeli znači da instrukcija može biti locirana tačno tamo gde se izvršava, kao što je instrukcija prekida ili poziva, a svako izvršenje te instrukcije će pokrenuti izuzetak. “Asinhroni” znači da nije moguće precizno odrediti instrukciju, a PC vrijednost instrukcija može biti drugačija svaki put kada se dogodi izuzetak. ”Precizno asinkrono” znači da izuzetak može biti lociran tačno na granici instrukcije, tj. stanje nakon izvršenja instrukcije, kao što je eksterni prekid. “Neprecizna asinhrona” znači da se granica instrukcije ne može precizno locirati, a možda i stanje nakon što je instrukcija prekinuta na pola izvršenja, kao što je greška u pristupu memoriji.
- Za pristup memoriji je potrebno vrijeme, a mikroprocesor obično ne čeka kraj pristupa prilikom pristupa memoriji već nastavlja izvršavati instrukciju, kada se ponovo pojavi izuzetak greške pristupa, mikroprocesor je već izvršio sljedeće instrukcije i ne može se precizno locirati.
Unos izuzetka
Kada je program u procesu normalnog rada, ako iz nekog razloga, pokreće izuzetak ili prekid. Hardversko ponašanje mikroprocesora u ovom trenutku može se sažeti na sljedeći način.
- Obustavite trenutni tok programa i prijeđite na izvršavanje funkcija rukovanja izuzetkom ili prekidom. Osnovna adresa unosa i način adresiranja funkcije izuzetka ili prekida definirani su registrom osnovne adrese unosa izuzetaka mtvec. mtvec[31:2] definira osnovnu adresu funkcije izuzetka ili prekida. mtvec[1:0] definira način adresiranja funkcije rukovatelja. kada je mtvec[1:0]=0, svi izuzeci i prekidi koriste objedinjeni unos, tj. kada dođe do izuzetka ili prekida, okreće se mtvec[31:2] koji definira osnovnu adresu za izvršenje. Kada je mtvec[1:0]=1, izuzeci i prekidi koriste režim vektorske tabele, tj. svaki izuzetak i prekid su numerisani, a adresa se pomera prema broju prekida*4, a kada dođe do izuzetka ili prekida, pomera se na osnovnu adresu definisanu sa mtvec[31:2] + broj prekida*4 Izvršenje. Tablica vektora prekida sadrži instrukciju za prelazak na funkciju rukovaoca prekidom, ili to mogu biti druge instrukcije.
- Ažurirajte registar CSR
- Kada se unese izuzetak ili prekid, mikroprocesor automatski ažurira relevantne CSR registre, uključujući registar uzroka iznimke u strojnom načinu rada, registar pokazivača iznimke u strojnom načinu mepc, metal registra vrijednosti izuzetka u strojnom načinu i status registra statusa strojnog režima.
Ažurirajte mcause
Kao što je već spomenuto, nakon unosa izuzetka ili prekida, njegova vrijednost odražava trenutni tip izuzetka ili broj prekida, a softver može pročitati ovu vrijednost registra kako bi provjerio uzrok izuzetka ili odredio izvor prekida, kao što je detaljno prikazano u Tabeli 2-1.
Ažurirajte mepc
- Standardna definicija povratne adrese mikroprocesora nakon izlaska iz izuzetka ili prekida pohranjena je u mepc.
- Dakle, kada dođe do izuzetka ili prekida, hardver automatski ažurira mepc vrijednost na trenutnu PC vrijednost instrukcije kada se naiđe na izuzetak, ili na sljedeću prethodno izvršenu PC vrijednost instrukcije prije prekida.
- Nakon što se obradi izuzetak ili prekid, mikroprocesor koristi svoju sačuvanu vrijednost kao povratnu adresu za povratak na lokaciju prekida i nastavak izvršavanja.
- Međutim, to je vrijedno napomenuti.
- MEPC je registar koji se može čitati i pisati, a softver također može modificirati vrijednost kako bi izmijenio lokaciju PC pokazivača koji radi nakon povratka.
- Kada dođe do prekida, tj. kada uzrok izuzetka registruje mcause[31]=1, vrijednost mapa se ažurira na PC vrijednost sljedeće neizvršene instrukcije u vrijeme prekida.
- Kada se dogodi izuzetak, vrijednost mapa se ažurira na PC vrijednost instrukcije trenutnog izuzetka kada izuzetak uzrokuje registar mcause[31]=0. Dakle, u ovom trenutku kada se izuzetak vrati, ako se vratimo direktno koristeći vrijednost mepc, nastavljamo s izvršavanjem instrukcije koja je prije generirala izuzetak i u ovom trenutku ćemo nastaviti da unosimo izuzetak. Obično, nakon što obradimo izuzetak, možemo modificirati vrijednost mepc na vrijednost sljedeće neizvršene instrukcije i zatim se vratiti. Za nprampda, ako izazovemo izuzetak zbog poziva/prekidanja, nakon rukovanja izuzetkom, pošto je opoziv/break (c.ebreak je 2 bajta) instrukcija od 4 bajta, potreban nam je samo softver da modificira vrijednost mepc u mepc+4 (c.ebreak je mepc+2) i zatim se vrati.
Ažurirajte mtval
Kada se unesu izuzeci i prekidi, hardver će automatski ažurirati vrijednost mtval, što je vrijednost koja je uzrokovala izuzetak. Vrijednost je tipično.
- Ako je izuzetak uzrokovan pristupom memoriji, hardver će pohraniti adresu pristupa memoriji u vrijeme iznimke u mtval.
- Ako je izuzetak uzrokovan nezakonitom instrukcijom, hardver će pohraniti instrukcijski kod instrukcije u mtval.
- Ako je izuzetak uzrokovan hardverskom prelomnom tačkom, hardver će pohraniti PC vrijednost na tački prekida u mtval.
- Za druge izuzetke, hardver postavlja vrijednost mtval na 0, kao što je prekid, izuzetak uzrokovan pozivnom instrukcijom.
- Prilikom ulaska u prekid, hardver postavlja vrijednost mtval na 0.
Ažurirajte mstatus
Nakon unosa izuzetaka i prekida, hardver ažurira određene bitove u mstatusu.
- MPIE se ažurira na MIE vrijednost prije unošenja izuzetka ili prekida, a MPIE se koristi za vraćanje MIE nakon što se izuzetak i prekid završe.
- MPP se ažurira u privilegirani način prije unosa izuzetaka i prekida, a nakon što se izuzeci i prekidi završe, MPP se koristi za vraćanje prethodnog privilegovanog načina rada.
- QingKe V3 mikroprocesor podržava ugniježđenje prekida u strojnom načinu rada, a MIE neće biti obrisan nakon unosa izuzetaka i prekida.
Ažurirajte režim privilegija mikroprocesora
- Kada se pojave izuzeci i prekidi, privilegirani način rada mikroprocesora se ažurira u strojni način.
Funkcije upravljanja izuzecima
- Nakon unosa izuzetka ili prekida, mikroprocesor izvršava program sa adrese i načina koji je definiran mtvec registrom. Kada koristi objedinjeni unos, mikroprocesor uzima instrukciju za skok sa osnovne adrese definisane sa mtvec[31:2] na osnovu vrednosti mtvec[1], ili dobija adresu unosa funkcije za rukovanje izuzetkom i prekidom i ide da je izvrši umesto toga. U ovom trenutku, funkcija rukovanja izuzetkom i prekidom može odrediti da li je uzrok izuzetak ili prekid na osnovu vrijednosti mcause[31], a tip i uzrok izuzetka ili odgovarajućeg prekida može se procijeniti prema kodu izuzetka i postupati u skladu s tim.
- Kada koristite osnovnu adresu + broj prekida *4 za pomak, hardver automatski skače na vektorsku tabelu da dobije adresu za unos izuzetka ili funkcije prekida na osnovu broja prekida i skače da ga izvrši.
Exception Exit
- Nakon što se završi obrada izuzetaka ili prekida, potrebno je izaći iz servisnog programa. Nakon unosa izuzetaka i prekida, mikroprocesor ulazi u mašinski režim iz korisničkog režima, a obrada izuzetaka i prekida se takođe završava u mašinskom režimu. Kada je potrebno izaći iz izuzetaka i prekida, potrebno je koristiti instrukciju mret za povratak. U ovom trenutku, hardver mikroprocesora će automatski izvršiti sljedeće operacije.
- PC pokazivač se vraća na vrijednost CSR registra mepc, tj. izvršavanje počinje na adresi instrukcije koju je sačuvao mepc. Potrebno je obratiti pažnju na ofset operaciju mepc-a nakon što se završi obrada izuzetaka.
- Ažurirajte status CSR registra, MIE se vraća u MPIE, a MPP se koristi za vraćanje privilegovanog režima prethodnog mikroprocesora.
- Cijeli proces odgovora na izuzetak može se opisati sljedećom slikom 2-1.

PFIC i kontrola prekida
- QingKe V3 mikroprocesor je dizajniran sa Programabilnim Fast Interrupt Controllerom (PFIC) koji može upravljati do 256 prekida uključujući izuzetke.
- Prvih 16 od njih je fiksirano kao interni prekidi mikroprocesora, a ostali su eksterni prekidi, odnosno maksimalni broj eksternih prekida može se proširiti na 240. Njegove glavne karakteristike su sljedeće.
- 240 eksternih prekida, svaki zahtjev za prekid ima nezavisne kontrolne bitove okidača i maske, sa namjenskim statusnim bitovima
- Programabilni prioritet prekida podržava 2 nivoa ugniježđenja
- Specijalni brzi prekidi u/iz mehanizma, hardversko automatsko slaganje i oporavak, maksimalna HPE dubina od 2 nivoa
- Mehanizam odgovora na prekide bez vektorske tablice (VTF), 2-kanalni programabilni direktni pristup adresama vektora prekida
- Napomena: Maksimalna dubina gniježđenja i HPE dubina koju podržavaju kontroleri prekida variraju za različite modele mikroprocesora, što se može naći u Tablici 1-1.
- Vektorska tabela prekida i izuzetaka prikazana je u tabeli 3-1 ispod.
Tablica 3-1 Tablica vektora izuzetaka i prekida
| Broj | Prioritet | Tip | Ime | Opis |
| 0 | – | – | – | – |
| 1 | – | – | – | – |
| 2 | -5 | Popravljeno | NMI | Prekid koji se ne može maskirati |
| 3 | -4 | Popravljeno | EXC | Prekid izuzetka |
| 4 | – | – | – | – |
| 5 | -3 | Popravljeno | ECALL-M | Prekid povratnog poziva u mašinskom režimu |
| 6-7 | – | – | – | – |
| 8 | -2 | Popravljeno | ECALL-U | Prekid povratnog poziva korisničkog načina |
| 9 | -1 | Popravljeno | BREAKPOINT | Prekid povratnog poziva tačke prekida |
| 10-11 | – | – | – | – |
| 12 | 0 | Programabilno | SysTick | Prekid sistemskog tajmera |
| 13 | – | – | – | – |
| 14 | 1 | Programabilno | SWI | Softverski prekid |
| 15 | – | – | – | – |
| 16-255 | 2-241 | Programabilno | Eksterni prekid | Vanjski prekid 16-255 |
Napomena: ECALL-M, ECALL-U i BREAKPOINT su sve različite vrste izuzetaka EXC, koje su nezavisne u V3B/C radi lakše upotrebe, a gornje 3 adrese unosa se dijele sa EXC u V3A.
PFIC registar set
Tabela 3-2 PFIC registri
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
| PFIC_ISRx | 0xE000E000
-0xE000E01C |
RO | Registar statusa omogućavanja prekida x | 0x00000000 |
| PFIC_IPRx | 0xE000E020
-0xE000E03C |
RO | Registar statusa na čekanju prekida x | 0x00000000 |
| PFIC_ITHRESDR | 0xE000E040 | RW | Registar konfiguracije praga prioriteta prekida | 0x00000000 |
| PFIC_VTFBADDRR | 0xE000E044 | RW | VTF registar bazne adrese
Napomena: Vrijedi samo za V3A |
0x00000000 |
| PFIC_CFGR | 0xE000E048 | RW | Registar konfiguracije prekida
Napomena: Vrijedi samo za V3A |
0x00000000 |
| PFIC_GISR | 0xE000E04C | RO | Prekinite globalni statusni registar | 0x00000002 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
Registar konfiguracije ID-a VTF prekida
Napomena: Vrijedi samo za V3B/C. |
0x00000000 |
| PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | VTF x offset adresni registar | 0xXXXXXXXX |
| PFIC_IENRx | 0xE000E100
-0xE000E11C |
WO | Registar podešavanja za omogućavanje prekida x | 0x00000000 |
| PFIC_IRERx | 0xE000E180
-0xE000E19C |
WO | Omogućavanje prekida brisanje registra x | 0x00000000 |
| PFIC_IPSRx | 0xE000E200
-0xE000E21C |
WO | Registar podešavanja na čekanju prekida x | 0x00000000 |
| PFIC_IPRRx | 0xE000E280
-0xE000E29C |
WO | Prekid čeka na brisanje registra x | 0x00000000 |
| PFIC_IACTRx | 0xE000E300
-0xE000E31C |
RO | Registar statusa aktivacije prekida x | 0x00000000 |
| PFIC_IPRIORx | 0xE000E400
-0xE000E43C |
RW | Registar konfiguracije prioriteta prekida | 0x00000000 |
| PFIC_SCTLR | 0xE000ED10 | RW | Registar upravljanja sistemom | 0x00000000 |
Napomena:
- NMI, EXC, ECALL-M, ECALL-U i BREAKPOINT su uvijek omogućeni prema zadanim postavkama.
- ECALL-M, ECALL-U i BREAKPOINT su slučaj EXC.
- NMI, EXC, ECALL-M, ECALL-U i BREAKPOINT podržavaju prekid u čekanju operacije brisanja i podešavanja, ali ne i omogućavaju prekid operacije brisanja i podešavanja.
Svaki registar je opisan na sljedeći način:
Status omogućavanja prekida i registri statusa na čekanju prekida (PFIC_ISR<0-7>/PFIC_IPR<0-7>)
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
| PFIC_ISR0 | 0xE000E000 | RO | Prekid 0-31 omogućava statusni registar, ukupno 32 statusna bita [n], što ukazuje da #n prekid omogućava status
Napomena: NMI i EXC su omogućeni po defaultu |
Za V3A: 0x0000000C
Za V3B/C: 0x0000032C |
| PFIC_ISR1 | 0xE000E004 | RO | Prekid 32-63 omogući registar statusa, ukupno 32 statusna bita | 0x00000000 |
| ... | ... | ... | ... | ... |
| PFIC_ISR7 | 0xE000E01C | RO | Prekid 224-255 omogućava registar statusa, ukupno 32 statusna bita | 0x00000000 |
| PFIC_IPR0 | 0xE000E020 | RO | Prekid 0-31 status čekanja | 0x00000000 |
| registar, ukupno 32 statusna bita [n], što ukazuje na status čekanja prekida #n | ||||
| PFIC_IPR1 | 0xE000E024 | RO | Prekinite 32-63 statusna registra na čekanju, ukupno 32 statusna bita | 0x00000000 |
| ... | ... | ... | ... | ... |
| PFIC_IPR7 | 0xE000E03C | RO | Registar statusa na čekanju 244-255 prekida, ukupno 32 statusna bita | 0x00000000 |
Dva seta registara se koriste za omogućavanje i deaktiviranje odgovarajućih prekida.
Postavka omogućavanja prekida i brisanje registara (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
| PFIC_IENR0 | 0xE000E100 | WO | Prekid 0-31 omogućava podešavanje registra, ukupno 32 bita podešavanja [n], za prekid #n omogućava podešavanje
Napomena: NMI i EXC su omogućeno po defaultu |
0x00000000 |
| PFIC_IENR1 | 0xE000E104 | WO | Prekid 32-63 da bi se omogućio registar podešavanja, ukupno 32 bita podešavanja | 0x00000000 |
| ... | ... | ... | ... | ... |
| PFIC_IENR7 | 0xE000E11C | WO | Prekid 224-255 omogućava podešavanje
registar, ukupno 32 bita za podešavanje |
0x00000000 |
| – | – | – | – | – |
| PFIC_IRER0 | 0xE000E180 | WO | Prekidi 0-31 omogućavaju brisanje registra, ukupno 32 čista bita [n], za prekid #n omogućava brisanje Napomena: NMI i EXC ne mogu biti operisan |
0x00000000 |
| PFIC_IRER1 | 0xE000E184 | WO | Prekid 32-63 omogućava čist registar, ukupno 32 čista bita | 0x00000000 |
| ... | ... | ... | ... | ... |
| PFIC_IRER7 | 0xE000E19C | WO | Prekid 244-255 omogućava čist registar, ukupno 32 čista bita | 0x00000000 |
Dva seta registara se koriste za omogućavanje i deaktiviranje odgovarajućih prekida.
Postavka na čekanju prekida i brisanje registara (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
|
PFIC_IPSR0 |
0xE000E200 |
WO |
Prekid 0-31 čekajući registar podešavanja, 32
postavljanje bitova [n], za prekid #n čekanje podešavanja |
0x00000000 |
| PFIC_IPSR1 | 0xE000E204 | WO | Prekid 32-63 čekajući registar podešavanja,
ukupno 32 setup bita |
0x00000000 |
| ... | ... | ... | ... | ... |
| PFIC_IPSR7 | 0xE000E21C | WO | Postavka na čekanju za prekid 224-255
registar, ukupno 32 bita za podešavanje |
0x00000000 |
| – | – | – | – | – |
|
PFIC_IPRR0 |
0xE000E280 |
WO |
Prekid 0-31 na čekanju za brisanje registra, ukupno 32 čista bita [n], za prekid #n
čeka se jasno |
0x00000000 |
| PFIC_IPRR1 | 0xE000E284 | WO | Prekid 32-63 na čekanju brisanja registra,
ukupno 32 čista bita |
0x00000000 |
| ... | ... | ... | ... | ... |
| PFIC_IPRR7 | 0xE000E29C | WO | Prekid 244-255 na čekanju brisanja registra,
ukupno 32 čista bita |
0x00000000 |
Kada mikroprocesor omogući prekid, on se može postaviti direktno preko registra na čekanju za prekid da pokrene prekid. Koristite registar za brisanje prekida na čekanju da obrišete okidač na čekanju.
Registar statusa prekida aktivacije (PFIC_IACTR<0-7>)
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
| PFIC_IACTR0 | 0xE000E300 | RO | Prekid 0-31 aktivira statusni registar sa 32 statusna bita [n], što ukazuje da se izvršava prekid #n | 0x00000000 |
| PFIC_IACTR1 | 0xE000E304 | RO | Prekinite 32-63 registra statusa aktivacije, 32 statusna bita
ukupno |
0x00000000 |
| ... | ... | ... | ... | ... |
| PFIC_IACTR7 | 0xE000E31C | RO | Prekid 224-255 registara statusa aktivacije, ukupno 32 statusna bita | 0x00000000 |
Svaki prekid ima aktivni statusni bit koji se postavlja kada se unese prekid i briše ga hardver kada se tržište vrati.
Registri prioriteta prekida i praga prioriteta (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
| PFIC_IPRIOR0 | 0xE000E400 | RW | Konfiguracija prioriteta prekida 0. V3A: [7:4]: Prioritetni kontrolni bitovi Ako konfiguracija nije ugniježđena, nema bita prednosti. Ako je ugniježđenje konfigurirano, bit7 je preuzeti bit. [3:0]: Rezervisano, fiksno na 0 V3B: [7:6]: Prioritetni kontrolni bitovi Ako konfiguracija nije ugniježđena, nijedan preventivni bit nije konfigurisan nije ugniježđen, svi bitovi su preuzeti, ali je dozvoljeno pojavljivanje do dva nivoa prekida [5:0]: Rezervirano, fiksno na 0 V3C: [7:5]: Prioritetni kontrolni bitovi Ako konfiguracija nije ugniježđena, nema preventivnih bitova Ako je konfigurisano ugniježđeno, svi bitovi su preuzeti, ali je dozvoljeno da se dogode do dva nivoa prekida [4:0]: Rezervirano, fiksno na 0 Napomena: Što je manja vrijednost prioriteta, to je veći prioritet. Ako isti prekid s prioritetom prioriteta visi u isto vrijeme, prvi će se izvršiti prekid s višim prioritetom. |
0x00 |
| PFIC_IPRIOR1 | 0xE000E401 | RW | Postavka prioriteta prekida 1, ista funkcija kao PFIC_IPRIOR0 | 0x00 |
| PFIC_IPRIOR2 | 0xE000E402 | RW | Postavka prioriteta prekida 2, ista funkcija kao PFIC_IPRIOR0 | |
| ... | ... | ... | ... | ... |
| PFIC_IPRIOR254 | 0xE000E4FE | RW | Postavka prioriteta prekida 254, ista funkcija kao PFIC_IPRIOR0 | 0x00 |
| PFIC_IPRIOR255 | 0xE000E4FF | RW | Postavka prioriteta prekida 255, ista funkcija kao PFIC_IPRIOR0 | 0x00 |
| – | – | – | – | – |
| PFIC_ITHRESDR | 0xE000E040 | RW | Postavljanje praga prioriteta prekida
V3A: [31:8]: Rezervirano, fiksno na 0 [7:4]: Prag prioriteta [3:0]: Rezervirano, fiksno na 0V3B: [31:8]: Rezervirano, fiksno na 0 [7:5]: Prag prioriteta [4:0]: Rezervirano, fiksno na 0V3C: [31:8]: Rezervirano, fiksno na 0 [7:5]: Prag prioriteta [4:0]: Rezervirano, fiksno na 0Napomena: Za prekide sa vrijednošću prioriteta ≥ prag, funkcija usluge prekida se ne izvršava kada dođe do zastoja, a kada je ovaj registar 0, to znači da je registar praga nevažeći. |
0x00 |
Registar konfiguracije prekida (PFIC_CFGR)
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
| PFIC_CFGR | 0xE000E048 | RW | Registar konfiguracije prekida | 0x00000000 |
Ovaj registar vrijedi samo za V3A, njegovi bitovi su definirani kao:
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:16] | KEYCODE | WO | Odgovarajući različitim ciljnim kontrolnim bitovima, odgovarajući podaci o identifikaciji sigurnosnog pristupa moraju biti upisani istovremeno da bi se modificirali, a podaci za očitavanje su fiksirani na 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF。 | 0 |
| [15:8] | Rezervirano | RO | Rezervirano | 0 |
| 7 | SYSRET | WO | Resetovanje sistema (istovremeno upisivanje u KEY3). Automatsko brisanje 0.
Pisanje 1 je važeće, pisanje 0 je nevažeće. Napomena: Ista funkcija kao SYSRESET bit PFIC_SCTLR registra. |
0 |
| 6 | PFICRESET | WO | Resetovanje PFIC modula. Automatsko brisanje 0.
Pisanje 1 je važeće, pisanje 0 je nevažeće. |
0 |
| 5 | EXPRESS | WO | Prekid iznimke na čekanju za brisanje (istovremeno upisivanje u KEY2)
Pisanje 1 je važeće, pisanje 0 je nevažeće. |
0 |
| 4 | EXCSET | WO | Postavka na čekanju za prekid prekida (istovremeno upisivanje u KEY2)
Pisanje 1 je važeće, pisanje 0 je nevažeće. |
0 |
| 3 | NMIRESET | WO | NMI prekid čeka na brisanje (istovremeno upisivanje u KEY2)
Pisanje 1 je važeće, pisanje 0 je nevažeće. |
0 |
| 2 | NMISET | WO | Postavka NMI prekida na čekanju (istovremeno pisanje na KEY2)
Pisanje 1 je važeće, pisanje 0 je nevažeće. |
0 |
| 1 | NESTCTRL | RW | Ugniježđenje prekida omogućava kontrolu.
1: isključeno; 0: uključeno (sinhrono pisanje na KEY1) |
0 |
| 0 | HWSTKCTRL | RW | HPE omogućava kontrolu
1: isključeno; 0: uključeno (sinhrono pisanje na KEY1) |
0 |
Registar globalnog statusa prekida (PFIC_GISR)
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
| PFIC_GISR | 0xE000E04C | RO | Prekinite globalni statusni registar | 0x00000000 |
Njegovi ljudi su definisani kao
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:14] | Rezervirano | RO | Rezervirano | 0 |
|
13 |
LOCKSTA |
RO |
Da li je procesor trenutno u zaključanom stanju:
1: Zaključano stanje; 0: Nezaključano stanje. Napomena: Ovaj bit vrijedi samo za V3B/C. |
0 |
|
12 |
DBGMODE |
RO |
Da li je procesor trenutno u stanju za otklanjanje grešaka: 1: stanje za otklanjanje grešaka;
0: Stanje bez otklanjanja grešaka. Napomena: Ovaj bit vrijedi samo za V3B/C. |
0 |
|
11 |
GLOBLIE |
RO |
Omogućavanje globalnog prekida:
1: Omogući prekid; 0: Onemogući prekid. Napomena: Ovaj bit vrijedi samo za V3B/C. |
|
| 10 | Rezervirano | RO | Rezervirano | 0 |
| 9 | GPENDSTA | RO | Da li je prekid trenutno na čekanju.
1: Da; 0: Ne. |
0 |
| 8 | GACTSTA | RO | Da li se trenutno izvršava prekid.
1: Da; 0: Ne. |
0 |
|
[7:0] |
NESTSTA |
RO |
Trenutni status gniježđenja prekida. 0x03: prekid nivoa 2.
0x01: prekid nivoa 1. 0x00: nema prekida. Ostalo: Nemoguća situacija. |
0 |
VTF ID registri osnovne adrese i ofset adrese (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
|
PFIC_VTFBADDRR |
0xE000E044 |
RW |
[31:28]: Visoka 4 bita ciljne adrese VTF-a [27:0]: Rezervirano
Ovaj registar vrijedi samo za V3A. |
0x00000000 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
[31:24]: Broj VTF 3 [23:16]: Broj VTF 2 [15:8]: Broj VTF 1 [7:0]: Broj VTF 0
Ovaj registar vrijedi samo za V3B/C. |
0x00000000 |
| – | – | – | – | – |
|
PFIC_VTFADDRR0 |
0xE000E060 | RW | V3A: [31:24]: VTF 0 broj prekida [23:0]: nižih 24 bita VTF ciljne adrese, od kojih je niskih 20 bita konfigurirano da budu validne, a [23:20] je fiksirano na 0.
V3B/C: [31:1]: VTF 0 adresa, 2-bajtno poravnato [0]:1: Omogućite VTF 0 kanal 0: Onemogući |
Za V3A: 0x00000000 Za V3B/C: 0xXXXXXXXX |
|
PFIC_VTFADDRR1 |
0xE000E064 |
RW |
V3A: [31:24]: VTF 1 broj prekida [23:0]: Nižih 24 bita VTF ciljne adrese, od kojih je nižih 20 bita konfigurirano da budu važeći, a [23:20] je fiksirano na 0.
V3B/C: [31:1]: VTF 1 adresa, 2-bajtno poravnato [0]:1: Omogućite VTF 1 kanal 0: Onemogući |
Za V3A: 0x00000000 Za V3B/C: 0xXXXXXXXX |
|
PFIC_VTFADDRR2 |
0xE000E068 |
RW |
V3A: [31:24]: VTF 2 broj prekida [23:0]: nižih 24 bita VTF ciljne adrese, od kojih je niskih 20 bita konfigurirano da budu validne, a [23:20] je fiksirano na 0.
V3B/C: [31:1]: VTF 2 adresa, 2-bajtno poravnato [0]:1: Omogućite VTF 2 kanal 0: Onemogući |
Za V3A: 0x00000000 Za V3B/C: 0xXXXXXXXX |
| PFIC_VTFADDRR3 | 0xE000E06C | RW | V3A: | Za V3A: |
| [31:24]: VTF 3 broj prekida [23:0]: niskih 24 bita VTF ciljne adrese, od kojih je niskih 20 bitova konfigurirano da budu validne, a [23:20] je fiksirano na 0.
V3B/C: [31:1]: VTF 3 adresa, 2-bajtno poravnato [0]:1: Omogućite VTF 3 kanal 0: Onemogući |
0x00000000
Za V3B/C: 0xXXXXXXXX |
Kontrolni registar sistema (PFIC_SCTLR)
| Ime | Pristupna adresa | Pristup | Opis | Resetuj vrijednost |
| PFIC_SCTLR | 0xE000ED10 | RW | Registar upravljanja sistemom | 0x00000000 |
Svaki od njih je definiran na sljedeći način.
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| 31 | SYSRET | WO | Resetovanje sistema, automatsko brisanje 0. Write 1 je važeći, a upišite 0 je nevažeći.
Napomena: Ovaj bit vrijedi samo za V3B/C |
0 |
| [30:6] | Rezervirano | RO | Rezervirano | 0 |
| 5 | SETEVENT | WO | Postavite događaj da probudi WFE kućište. | 0 |
|
4 |
SEVONPEND | RW | Kada se dogodi događaj ili prekine stanje na čekanju, sistem se može probuditi nakon WFE instrukcije, ili ako se WFE instrukcija ne izvrši, sistem će se probuditi odmah nakon sljedećeg izvršenja instrukcije.
1: Omogućeni događaji i svi prekidi (uključujući neomogućene prekide) mogu probuditi sistem. 0: Samo omogućeni događaji i omogućeni prekidi mogu probuditi sistem. |
0 |
| 3 | WFITOWFE | RW | Izvršite naredbu WFI kao da je WFE.
1: Tretirajte narednu WFI instrukciju kao WFE instrukciju. 0: Nema efekta. |
0 |
| 2 | SLEEPDEEP | RW | Režim male snage kontrolnog sistema. | 0 |
| 1: duboko spavanje 0: san | ||||
| 1 | SLEEPONEXI T | RW | Status sistema nakon kontrole napušta servisni program prekida.
1: Sistem ulazi u režim niske potrošnje energije. 0: Sistem ulazi u glavni program. |
0 |
| 0 | Rezervirano | RO | Rezervirano | 0 |
CSR registri koji se odnose na prekide
Osim toga, sljedeći CSR registri također imaju značajan utjecaj na obradu prekida. Registar kontrole sistema prekida (intsyscr)
Ovaj registar ne vrijedi samo za V3A:
| Ime | CSR Adresa | Pristup | Opis | Resetuj vrijednost |
| intsyscr | 0x804 | URW | Registar kontrole sistema prekida | 0x0000E002 |
Njegovi ljudi su definisani kao:
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
|
31 |
LOCK |
URO |
0: Ovaj registar se može čitati i pisati u korisničkom modu;
1: Ovaj registar se može čitati i pisati samo u mašinskom režimu. Napomena: Ovaj konfiguracijski bit je važeći od verzija 1.0 pa nadalje. |
0 |
| [30:6] | Rezervirano | URO | Rezervirano | 0x380 |
|
5 |
GIHWSTKNEN |
URW1 |
Globalni prekid i gašenje hardverskog stoga su omogućeni.
Napomena: Ovaj bit se često koristi u operativnim sistemima u realnom vremenu. Kada se kontekst promijeni tokom prekida, postavljanje ovog bita može isključiti globalni prekid i gurnuti hardverski stog. Kada se prebacivanje konteksta završi i prekid se vrati, hardver će automatski obrisati ovaj bit. |
0 |
| 4 | Rezervirano | URO | Rezervirano | 0 |
| [3:2] | PMTCFG | URW | Konfiguracija bitova prioriteta:
00: Broj bitova prečesti je 0; 01: Broj bitova prednosti je 1; 10: Broj bitova prednosti je 2; 11: Broj bitova prednosti je 3; Napomena: Ovaj konfiguracijski bit je važeći nakon 1.0. |
0 |
| 1 | Slušaj | URW | Funkcija ugniježđenja prekida je omogućena, a fiksna vrijednost je 1: | 1 |
| 0: Onemogući;
1: Omogući. Napomena: 1. Stvarni nivo ugnježđenja kontroliše NEST_LVL u CSR 0xBC1; 2. Samo verzije nakon 1.0 mogu biti napisano. |
||||
| 0 | HWSTKEN | URW | Omogućavanje hardverskog steka:
0: Funkcija pritiskanja hardverskog steka je onemogućena; 1: Funkcija pritiskanja hardverskog steka je omogućena. |
0 |
Registar osnovne adrese iznimke strojnog načina (mtvec)
| Ime | CSR Adresa | Pristup | Opis | Resetuj vrijednost |
| mtvec | 0x305 | MRW | Registar osnovnih adresa izuzetaka | 0x00000000 |
Njegovi ljudi su definisani kao
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:2] | BASEADDR[31:2] | MRW | Osnovna adresa tabele vektora prekida, gdje
bitovi [9:2] su fiksirani na 0. |
0 |
| 1 | MODE1 |
MRO |
Režim prepoznavanja tabele vektora prekida: 0: Identifikujte pomoću instrukcije skoka, sa ograničenim opsegom, i podržavajte instrukcije bez skoka;
1: Identifikujte po apsolutnoj adresi, podržavaju puni opseg, ali moraju skočiti. Napomena: Ovaj bit vrijedi samo za V3B/C. |
0 |
| 0 | MODE0 | MRW | Odabir načina unosa adrese prekida ili izuzetka.
0: Upotreba jedinstvene ulazne adrese. 1: Pomak adrese na osnovu broja prekida *4. |
0 |
Za MCU s mikroprocesorima serije V3, MODE0 je konfiguriran da bude 1 prema zadanim postavkama pri pokretanju file, a unosi za izuzetke ili prekide su pomjereni prema broju prekida *4. Imajte na umu da mikroprocesor V3A pohranjuje instrukciju za skok u vektorskoj tablici, dok mikroprocesor V3B/C može ili instrukciju za skok ili koristiti apsolutnu adresu funkcije prekida, koja je konfigurirana kao apsolutna adresa u zadanom pokretanju file.
Registar konfiguracije mikroprocesora (korektor)
Ovaj registar je nevažeći za V3A:
| Ime | CSR Adresa | Pristup | Opis | Resetuj vrijednost |
| corefgr | 0xBC0 | MRW | Registar konfiguracije mikroprocesora | 0x00000001 |
Njegovi ljudi su definisani kao
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:8] | Rezervirano | MRO | Rezervirano | 0 |
|
7 |
CSTA_FAULT_IE |
MRW |
Omogućavanje prekida greške u statusu jezgre:
0: U slučaju statusne greške, ne generiše se NMI prekid; 1: U statusnoj grešci, NMI prekid je generisano. |
0 |
| 6 | Rezervirano | MRO | Zadrži 0. | 0 |
| 5 | IE_REMAP_EN | MRW | MIE mapiranje registra omogućava:
0: CSR adresa 0x800 je registar samo za čitanje, a povratna vrijednost je vrijednost STATUS; 1: Bitovi 3 i 7 CSR adrese 0x800 su mapirani u bit MIE STATUS registra i bit MPIE STATUS registra, respektivno. |
0 |
| 4 | Rezervirano | MRO | Rezervirano | 0 |
| 3 | ROM_LOOP_ACC | MRW | Omogućavanje ubrzanja petlje instrukcija ROM područja:
0: Isključite funkciju cikličkog ubrzanja u ROM području; 1: Kontinuirane instrukcije s tijelom petlje unutar 128 bajtova će biti potpuno ubrzane, dok će one s tijelom petlje unutar 256 bajtova biti djelimično ubrzane; |
0 |
| 2 | ROM_JUMP_ACC | MRW | Ubrzanje skoka instrukcije ROM područja je omogućeno:
0: Onemogući ubrzanje skoka instrukcija ROM područja; 1: Omogućite ubrzanje skoka instrukcija u ROM području. |
0 |
| [1:0] | FETCH_MODE | MRW | Način preuzimanja:
00: Unaprijed dohvat je isključen. Funkcija prethodnog dohvaćanja instrukcija je isključena kako bi se izbjegle nevažeće operacije dohvaćanja instrukcija, a na cjevovodu CPU-a postoji najviše jedna važeća instrukcija. Ovaj model ima najmanju potrošnju energije, a njegove performanse padaju za oko 2 ~ 3 puta. 01: Režim prethodnog dohvaćanja 1. Kada je funkcija prethodnog dohvaćanja instrukcija uključena, CPU će nastaviti da pristupa memoriji instrukcija sve dok broj instrukcija koje treba izvršiti u internom međuspremniku instrukcija ne pređe određeni broj, ili je bafer instrukcija pun, a dohvaćanje instrukcija će biti obustavljeno; (Neuspjeh CPU predviđanja će dovesti do suvišne operacije preuzimanja, au nekim slučajevima, izvršna jedinica će uvesti 0 ~ 2 ciklusa mehurića, a performanse većine programa se neće očigledno smanjiti); 10: Rezervisano; |
0x1 |
Prekinuti ugniježđeni kontrolni registar (inestcr)
Ovaj registar je nevažeći samo za V3A:
| Ime | CSR Adresa | Pristup | Opis | Resetuj vrijednost |
| investitor | 0xBC1 | MRW | Prekinuti ugniježđeni kontrolni registar | 0x00000000 |
Njegovi ljudi su definisani kao
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| 31 | Rezervirano | MRO | Rezervirano | 0 |
| 30 | NEST_OV | MRW | Bit zastave ugniježđenog prelivanja prekida/izuzeka, upišite 1 da obrišete:
0: Prekid se nije prelio; 1: Zastavica prelivanja prekida. Napomena: Prelivanje prekida će se dogoditi samo kada se izvršava funkcija sekundarne usluge prekida za generiranje izuzetka instrukcije ili NMI prekida. U ovom trenutku, izuzetak i NMI prekid ulaze normalno, ali se CPU stog prepuni, tako da ne možete izaći iz ovog izuzetka i NMI prekid. |
0 |
| [29:12] | Rezervirano | MRO | Rezervirano | 0 |
| [11:8] | NEST_STA | MRO | Bit ugniježđene oznake statusa:
0000: Bez prekida; 0001: Prekid nivoa 1; 0011: prekid nivoa 2 (ugniježđenje 1 nivoa); |
0 |
| 0111: Prekid nivoa 3 (prelijevanje);
1111: Prekid nivoa 4 (prelijevanje). |
||||
| [7:2] | Rezervirano | MRO | Rezervirano | 0 |
| [1:0] | NEST_LVL | MRW | Nivo gniježđenja:
00: Ugniježđenje je zabranjeno i funkcija ugniježđenja je isključena; 01: Ugniježđenje prve razine, koje uključuje funkciju ugniježđenja; Ostalo: Nevažeće. Napomena: U ovo polje upišite 10 ili 11, a polje će biti postavljeno na 01. Kada upisujete 11 u ovo polje, pročitajte ovaj registar da biste dobili najviši nivo ugniježđenja čipa. |
0 |
Registar za omogućavanje globalnog prekida korisničkog načina (pripravnik)
Ovaj registar je nevažeći samo za V3A:
| Ime | CSR Adresa | Pristup | Opis | Resetuj vrijednost |
| gintenr | 0x800 | URW | Globalni registar omogućavanja prekida | 0x00000000 |
Ovaj registar se koristi za kontrolu omogućavanja i maske globalnog prekida. Omogućavanje i maska globalnog prekida u mašinskom režimu mogu se kontrolisati pomoću MIE i MPIE bitova u statusu, ali ovim registrom se ne može upravljati u korisničkom režimu.
Globalni registar za omogućavanje prekida gintenr je mapiranje MIE i MPIE u mstatusu i može se koristiti za postavljanje i brisanje MIE i MPIE korištenjem gintenr-a u korisničkom modu.
Svaki od njih je definisan kao:
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:13] | Rezervirano | URO | Rezervirano | 0 |
| [12:11] | MPP | URO | Uđite u privilegirani način prije prekida. | 0 |
| [10:8] | Rezervirano | URO | Rezervirano | 0 |
| 7 | MPIE | URW | Kada je 0xBC0(CSR)bit5 omogućen, ovaj bit
može se čitati i pisati u korisničkom modu. |
0 |
| [6:4] | Rezervirano | URO | Rezervirano | 0 |
| 3 | MIE | URW | Kada je 0xBC0(CSR)bit5 omogućen, ovaj bit
može se čitati i pisati u korisničkom modu. |
0 |
| [1:0] | Rezervirano | URO | Rezervirano | 0 |
Prekini gniježđenje
U vezi sa prekidom, konfiguracionim registrom PFIC_CFGR i registrom prioriteta prekida PFIC_IPRIOR, može se dozvoliti da dođe do ugnježđenja prekida. Omogućite ugniježđenje u registru konfiguracije prekida (Ugniježđenje je uključeno po defaultu za mikroprocesore serije V3) i konfigurirajte prioritet odgovarajućeg prekida. Što je manja vrijednost prioriteta, to je veći prioritet. Što je manja vrijednost bita prečesti, to je veći prioritet prednosti. Ako postoje prekidi koji visi u isto vrijeme pod istim prioritetom prednosti, mikroprocesor prvo odgovara na prekid s vrijednošću nižeg prioriteta (veći prioritet).
Hardverski prolog/epilog (HPE)
- Kada dođe do izuzetka ili prekida, mikroprocesor zaustavlja trenutni tok programa i prelazi na izvršavanje funkcije rukovanja izuzetkom ili prekidom, mjesto trenutnog toka programa mora biti sačuvano. Nakon povratka izuzetka ili prekida, potrebno je vratiti lokaciju i nastaviti izvršavanje zaustavljenog toka programa. Za mikroprocesore serije V3, „mjesto“ se ovdje odnosi na sve registre spremljenih pozivatelja u Tabeli 1-2.
- Mikroprocesori serije V3 podržavaju hardversko jednociklično automatsko pohranjivanje 16 oblikovanih registara sačuvanih od pozivaoca u internu oblast steka koja nije vidljiva korisniku. Kada se vrati izuzetak ili prekid, hardverski pojedinačni ciklus automatski vraća podatke iz unutrašnjeg steka u registre u obliku 16. HPE podržava ugniježđenje do 2 nivoa dubine.
- Na sljedećoj slici je prikazana šema mikroprocesorskog sklopa pritiska.

Napomena:
- Prekidne funkcije koje koriste HPE moraju se kompajlirati pomoću MRS-a ili njegovog lanca alata, a funkcija prekida treba biti deklarirana sa __attribute__((interrupt(“WCH-Interrupt-fast”))).
- Funkcija prekida koja koristi stack push je deklarirana pomoću __attribute__((interrupt())).
Vector Table Free (VTF)
- Programabilni brzi kontroler prekida (PFIC) pruža 4 VTF kanala, tj. direktan pristup unosu funkcije prekida bez prolaska kroz proces traženja tabele vektora prekida.
- VTF kanal se može omogućiti upisivanjem njegovog broja prekida, osnovne adrese funkcije prekida i adrese pomaka u odgovarajući registar PFIC kontrolera dok se normalno konfiguriše funkcija prekida.
- Proces PFIC odgovora za brze prekide bez tabele prikazan je na slici 3-2 ispod.

Zaštita fizičke memorije PMP
- Kako bi se poboljšala sigurnost sistema, modul zaštite fizičke memorije (PMP) je dizajniran prema RISC-V arhitekturnom standardu za V3 seriju mikroprocesora planinskog ječma. Podržano je upravljanje pravima pristupa do 4 fizičke regije. Dozvole uključuju atribute čitanja (R), pisanja (W) i izvršavanja (X), a dužina zaštićenog područja može se postaviti na najmanje 4 bajta. PMP modul uvijek stupa na snagu u korisničkom modu, ali može imati efekta opciono zaključavanjem (L) atributa u strojnom modu.
- Ako pristup krši trenutno ograničenje dozvole, to će pokrenuti nenormalan prekid. PMP modul uključuje četiri grupe 8-bitnih konfiguracionih registara (Jedna grupa od 32-bitnih) i četiri grupe adresnih registara, kojima se svima treba pristupiti u mašinskom režimu prema CSR instrukciji.
- Napomena: Broj zaštićenih područja koje podržava PMP u različitim modelima mikroprocesora može biti različit, a broj koji podržavaju pmpcfg i pmpaddr registri je također različit. Pogledajte Tabelu 1-1 za detalje.
PMP registar set
Lista CSR registara koje podržava PMP modul mikroprocesora V3 prikazana je u Tabeli 4-1 ispod.
Tabela 4-1 Set registara PMP modula
| Ime | CSR adresa | Pristup | Opis | Resetuj vrijednost |
| pmpcfg0 | 0x3A0 | MRW | PMP konfiguracijski registar 0 | 0x00000000 |
| pmpaddr0 | 0x3B0 | MRW | PMP adresni registar 0 | 0xXXXXXXXX |
| pmpaddr1 | 0x3B1 | MRW | PMP adresni registar 1 | 0xXXXXXXXX |
| pmpaddr2 | 0x3B2 | MRW | PMP adresni registar 2 | 0xXXXXXXXX |
| pmpaddr3 | 0x3B3 | MRW | PMP adresni registar 3 | 0xXXXXXXXX |
pmp
pmpcfg je konfiguracijski registar PMP jedinice, a svaki registar sadrži četiri 8-bitna polja pumpanja, koja odgovaraju konfiguraciji četiri regije, a pumpanje predstavlja konfiguracijsku vrijednost regije i. Njegov format je prikazan u sljedećoj tabeli 4-2.
Tabela 4-2 registar pmpcfg0
pmpcfg se koristi za konfiguraciju područja I i njegova definicija bita je opisana u sljedećoj tablici 4-3.
Tabela 4-3 pmp
| Bit | Ime | Opis |
| 7 | L | Zaključavanje je omogućeno i može se otključati u mašinskom režimu. 0: Nije zaključano;
1: Zaključajte relevantni registar. |
| [6:5] | – | Rezervirano |
| [4:3] | A | Poravnanje adrese i izbor raspona zaštitnog područja. 00: OFF (PMP isključen)
01: TOR (zaštita od gornjeg poravnanja) 10: NA4 (fiksna zaštita od četiri bajta) 11: NAPOT (2(G+2) zaštita bajtova, G≥1) |
| 2 | X | Izvršni atribut. |
| 0: Nema dozvole za izvršavanje;
1: Dozvola za izvršenje. |
||
|
1 |
W |
Atribut koji se može pisati.
0: Nema dozvole za pisanje 1: Dozvola za pisanje. |
|
0 |
R |
Čitljiv atribut
0: Nema dozvole za čitanje 1: Dozvola za čitanje. |
pmpaddr
Registar pmpaddr se koristi za konfigurisanje adrese područja I. Standardna definicija je pod RV32 arhitekturom, koja je kodiranje gornja 32 bita 34-bitne fizičke adrese, a njen format je prikazan u sljedećoj tabeli 4-4.
Cijeli fizički adresni prostor mikroprocesora V3 je 4G, tako da se gornja dva bita ovog registra ne koriste.
Tabela 4-4 pmpaddr 
Kada je NAPOT odabran, niži bit adresnog registra se također koristi za označavanje veličine trenutnog zaštitnog područja, kao što je prikazano u sljedećoj tabeli, gdje je 'y' bit registra.
Tablica 4-5 Tablica odnosa između PMP konfiguracije i adresnog registra i zaštićenog područja.
| pmpaddr | pmpcfg. A | Odgovarajuća osnovna adresa i veličina |
| yyyy…yyyy | NA4 | Sa 'yy…yyyy00' kao baznom adresom, zaštićeno je područje od 4 bajta. |
| yyyy…yyy0 | NAPOT | Sa 'yy…yyy000' kao baznom adresom, 8-bajtno područje je zaštićeno. |
| yyyy…yy01 | NAPOT | Sa 'yy…yy0000' kao baznom adresom, 16-bajtno područje je zaštićeno. |
| yyyy…y011 | NAPOT | Sa 'yy…y00000' kao baznom adresom, 16-bajtno područje je zaštićeno. |
| ... | ... | ... |
| yyy01…111 | NAPOT | Sa 'y0…000000' kao baznom adresom, zaštićeno je područje od 231 bajta. |
| yy011…111 | NAPOT | Zaštitite cijelo područje od 232 bajta. |
Zaštitni mehanizam
X/W/R u pmpcfg se koristi za postavljanje ovlaštenja zaštite područja I, a kršenje relevantnog ovlaštenja će uzrokovati odgovarajući izuzetak:
- Kada pokušavate dohvatiti instrukcije u PMP području bez ovlaštenja za izvršenje, to će uzrokovati izuzetak greške pristupa dohvaćanju instrukcija (mcause=1).
- Kada pokušavate da upišete podatke u PMP oblast bez pismene dozvole, to će izazvati izuzetak greške (mcause=7) u pristupu instrukciji za skladištenje.
- Prilikom pokušaja čitanja podataka u PMP području bez dozvole za čitanje, to će uzrokovati abnormalnu grešku pristupa memoriji (mcause=5) za instrukciju učitavanja.
A u pmpcfg se koristi za postavljanje zaštitnog raspona i poravnanja adrese regije I, te za zaštitu memorije A_ADDR ≤ regiona < i > < B_ADDR (i A_ADDR i B_ADDR moraju biti poravnati u 4 bajta):
- Ako je B _ ADDR–A_ADDR = = 22, NA4 mod se usvaja;
- Ako je B_ ADDR–A_ADDR = = 2(G+2), G≥1, a _ adresa je 2(g+2), usvaja se NAPOT metoda;
- U suprotnom, TOP mod se usvaja.
Tabela 4-6 Metode podudaranja PMP adresa
| Vrijednost | Ime | Opis |
| 0b00 | OFF | Nema oblasti za zaštitu |
| 0b01 | TOR | Top Aligned Area Protection.
Pod pmp pmpaddri = B_ADDR >> 2. Napomena: Ako je oblast 0 PMP-a konfigurisana kao TOR mod (i=0), donja granica zaštitnog područja je 0 adresa, tj. 0 ≤ addr < pmpaddr0, sve unutar raspona podudaranja. |
| 0b10 | NA4 | Fiksna 4-bajtna zaštita područja.
pmp |
| 0b11 | NAPOT | Zaštitite 2(G+2) region sa G ≥ 1, kada je A_ADDR 2(G+2) poravnat. pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1. |
- L bit u pmp
- Mikroprocesori serije QingKe V3 podržavaju zaštitu više zona. Kada se ista operacija podudara sa više zona u isto vrijeme, prva se uparuje zona s manjim brojem.
Sistemski tajmer (SysTick)
- Mikroprocesor serije QingKe V3 je dizajniran sa 32-bitnim ili 64-bitnim brojačem (SysTick) unutra. Njegov izvor takta je sistemski sat ili njegova 8-frekvencijska podjela, a V3A podržava samo 8-frekvencijsku podjelu.
- Može da obezbedi vremensku bazu, vreme i merenje vremena za operativni sistem u realnom vremenu. Različiti tipovi registara uključeni u tajmer imaju različite adrese mapiranja, kao što je prikazano u sljedećim tabelama 5-1 i 5-2.
Tabela 5-1 V3A SysTick lista registara
| Ime | Pristupna adresa | Opis | Resetuj vrijednost |
| STK_CTLR | 0xE000F000 | Kontrolni registar sistemskog brojača | 0x00000000 |
| STK_CNTL | 0xE000F004 | Niski registar sistemskog brojača | 0xXXXXXXXX |
| STK_CNTH | 0xE000F008 | Sistemski brojač visokog registra
Napomena: Važi samo za V3A. |
0xXXXXXXXX |
| STK_CMPLR | 0xE000F00C | Niski registar vrijednosti za usporedbu sistemskog broja | 0xXXXXXXXX |
| STK_CMPHR | 0xE000F010 | Visoki registar vrijednosti za usporedbu sistemskog broja
Napomena: Važi samo za V3A. |
0xXXXXXXXX |
Tabela 5-2 V3 SysTick registar lista drugih modela
| Ime | Pristupna adresa | Opis | Resetuj vrijednost |
| STK_CTLR | 0xE000F000 | Kontrolni registar sistemskog brojača | 0x00000000 |
| STK_SR | 0xE000F004 | Registar statusa sistemskog brojača | 0x00000000 |
| STK_CNTL | 0xE000F008 | Niski registar sistemskog brojača | 0xXXXXXXXX |
| STK_CMPLR | 0xE000F010 | Niski registar vrijednosti poređenja brojanja | 0xXXXXXXXX |
Svaki registar je detaljno opisan kako slijedi.
Kontrolni registar sistemskog brojača (STK_CTLR)
Tabela 5-3 SysTick kontrolni registri
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:5] | Rezervirano | RO | Rezervirano | 0 |
|
4 |
MODE |
RW |
Način odbrojavanja: 1: Odbrojavanje;
0: Brojite. Napomena: Nevažeće za V3A. |
0 |
|
3 |
STRE |
RW |
Bit za omogućavanje automatskog brojanja ponovnog učitavanja:
1: Ponovo brojite od 0 nakon odbrojavanja do uporedne vrijednosti i ponovo brojite od uporedne vrijednosti nakon odbrojavanja do 0; 0: Nastavite sa odbrojavanjem gore/dolje. Napomena: Nevažeće za V3A. |
0 |
|
2 |
STCLK |
RW |
Bit za odabir izvora brojača:
1: HCLK kao vremenska baza; 0: HCLK/8 kao vremenska baza. Napomena: Nevažeći je za V3A, koji podržava samo HCLK/8 kao vremenska baza. |
0 |
| 1 | SITE | RW | Kontrolni bitovi za omogućavanje prekida brojača: | 0 |
| 1: Omogući prekid brojača; 0: Onemogući prekid brojača.
Napomena: Nevažeće za V3A. |
||||
| 0 | STE | RW | Sistemski brojač omogućava kontrolni bit. 1: Omogući sistemski brojač STK;
0: Onemogućite sistemski brojač STK i brojač prestaje da broji. |
0 |
Registar statusa sistemskog brojača (STK_SR)
Ovaj registar se ne odnosi na V3A.
Tabela 5-4 Niski registar SysTick brojača
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
|
31 |
SWIE |
RW |
Omogućavanje okidača softverskog prekida (SWI): 1: Okidanje softverskog prekida;
0: Isključite okidač. Napomena: Ovaj bit mora biti obrisan nakon ulaska u softverski prekid, inače će se uvijek pokrenuti. |
0 |
| [30:1] | Rezervirano | RO | Rezervirano | 0 |
|
0 |
CNTIF |
RW |
Zastavica poređenja brojanja, jasno napišite 0, upišite 1 je nevažeća:
1: Brojite do uporedne vrijednosti i odbrojavajte do 0; 0: Vrijednost poređenja nije dostignuta. |
0 |
Niski registar sistemskog brojača (STK_CNTL)
Tabela 5-5 Niski registar SysTick brojača
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:0] | CNTL | RW | Trenutna vrijednost brojača je 32 bita niža. Za V3A, ovaj registar se može čitati kao 8-bitni /16-bitni
/32-bitni, ali se može napisati samo kao 8-bitni, i drugo modeli nisu ograničeni. |
0xXXXXX XXX |
Napomena: Registar STK_CNTL i registar STK_CNTH u V3A zajedno čine 64-bitni sistemski brojač.
Visoki registar sistemskog brojača (STK_CNTH)
Tabela 5-6 Visoki registar SysTick brojača
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:0] | CNTH | RW | Trenutna vrijednost brojača je 32 bita veća. Ovaj registar se može čitati 8-bitnim/16-bitnim/32-bitnim, ali se može pisati samo 8-bitnim.
Napomena: Važi samo za V3A. |
0xXXXXX XXX |
Napomena: Registar STK_CNTL i registar STK_CNTH u V3A zajedno čine 64-bitni sistemski brojač.
Niski registar vrijednosti za usporedbu sistemskog broja (STK_CMPLR)
Tabela 5-7 SysTick uporedna vrijednost niskog registra
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:0] | CMPL | RW | Postavite vrijednost poređenja brojača na 32 bita niže. Kada su CMP vrijednost i CNT vrijednost jednake, STK prekid će se pokrenuti. Za V3A, ovaj registar se može čitati kao 8-bitni /16-bitni /32-bitni, ali može biti samo
napisan kao 8-bitni, a ostali modeli nisu ograničeni. |
0xXXXXX XXX |
Napomena: Registar STK_CMPLR i registar STK_CMPHR u V3A zajedno čine 64-bitnu vrijednost za usporedbu brojača.
Visoki registar vrijednosti za usporedbu sistemskog broja (STK_CMPHR)
Tabela 5-8 Visoki registar SysTick vrijednosti za usporedbu
| Bit | Ime | Pristup | Opis | Resetuj vrijednost |
| [31:0] | CMPH | RW | Postavite vrijednost poređenja brojača 32 bita više. STK prekid će se pokrenuti kada su CMP vrijednost i CNT vrijednost jednake.
Ovaj registar se može čitati 8-bitnim/16-bitnim/32-bitnim, ali se može pisati samo 8-bitnim. Napomena: Važi samo za V3A. |
0xXXXXX XXX |
Napomena: Registar STK_CMPLR i registar STK_CMPHR u V3A zajedno čine 64-bitnu vrijednost za usporedbu brojača.
Postavke niske potrošnje procesora
- Mikroprocesori serije QingKe V3 podržavaju stanje mirovanja putem WFI (Wait for Interrupt) instrukcije kako bi se postigla niska statička potrošnja energije.
- Zajedno sa PFIC-ovim sistemskim kontrolnim registrom (PFIC_SCTLR), mogu se implementirati različiti režimi mirovanja i WFE instrukcije.
Uđite u stanje spavanja
- Mikroprocesori serije QingKe V3 mogu ići u stanje mirovanja na dva načina, Wait for Interrupt (WFI) i Wait For Event (WFE). Metoda WFI znači da mikroprocesor ide u stanje mirovanja, čeka prekid da se probudi, a zatim se budi do odgovarajućeg prekida da ga izvrši. WFE metoda znači da mikroprocesor ide u stanje mirovanja, čeka da se neki događaj probudi i budi se kako bi nastavio s izvršavanjem prethodno zaustavljenog toka programa.
- Standardni RISC-V podržava WFI instrukcije, a WFI komanda se može izvršiti direktno za ulazak u stanje mirovanja pomoću WFI metode. Za WFE metodu, WFITOWFE bit u sistemskom kontrolnom registru PFIC_SCTLR se koristi za kontrolu narednih WFI naredbi kao WFE obradu da bi se postigao WFE metod za ulazak u stanje mirovanja.
- Dubina spavanja se kontroliše prema bitu SLEEPDEEP u PFIC_SCTLR.
- Ako se SLEEPDEEP u PFIC_SCTLR registru obriše na nulu, mikroprocesor ulazi u stanje mirovanja i dozvoljeno je isključiti sat unutrašnje jedinice osim SysTicka i dijela logike buđenja.
- Ako je SLEEPDEEP u PFIC_SCTLR registru postavljen, mikroprocesor ulazi u način dubokog mirovanja i svi ćelijski satovi mogu biti isključeni.
- Kada je mikroprocesor u modu za otklanjanje grešaka, nije moguće ući u bilo koji način mirovanja.
Sleep Wakeup
Mikroprocesori serije QingKe V3 mogu se probuditi nakon spavanja zbog WFI i WFE na sljedeće načine.
Nakon što WFI metoda pređe u stanje mirovanja, može se probuditi
- Mikroprocesor se može probuditi izvorom prekida na koji je reagirao kontroler prekida. Nakon buđenja, mikroprocesor prvo izvršava funkciju prekida.
- Uđite u stanje mirovanja, zahtjev za otklanjanje grešaka može učiniti da se mikroprocesor probudi i uđe u duboko spavanje, zahtjev za otklanjanje grešaka ne može probuditi mikroprocesor.
Nakon što WFE metoda pređe u stanje mirovanja, mikroprocesor se može probuditi na sljedeći način.
- Interni ili eksterni događaji, kada nema potrebe za konfiguracijom kontrolera prekida, probudite se i nastavite s izvršavanjem programa.
- Ako je izvor prekida omogućen, mikroprocesor se budi kada se generira prekid, a nakon buđenja, mikroprocesor prvi izvršava funkciju prekida.
- Ako je SEVONPEND bit u PFIC_SCTLR konfigurisan, kontroler prekida ne omogućava prekid, ali kada se generiše novi signal na čekanju za prekid (prethodno generisani signal na čekanju ne stupa na snagu), to također može učiniti da se mikroprocesor probudi, a odgovarajuća zastavica čekanja prekida se mora izbrisati ručno nakon buđenja.
- Zahtjev za otklanjanje grešaka u režimu mirovanja može učiniti da se mikroprocesor probudi i uđe u duboko spavanje, zahtjev za otklanjanje grešaka ne može probuditi mikroprocesor.
- Dodatno, stanje mikroprocesora nakon buđenja može se kontrolisati konfiguracijom bita SLEEPONEXIT u PFIC_SCTLR.
- SLEEPONEXIT je postavljen i instrukcija povratka prekida posljednjeg nivoa (mret) će pokrenuti WFI način mirovanja.
SLEEPONEXIT se briše bez efekta.
Različiti MCU proizvodi opremljeni mikroprocesorima serije V3 mogu usvojiti različite režime mirovanja, isključiti različite periferne uređaje i satove, implementirati različite politike upravljanja napajanjem i metode buđenja prema različitim konfiguracijama PFIC_SCTLR i realizovati različite režime niske potrošnje.
Podrška za otklanjanje grešaka
- Mikroprocesori QingKe V3 serije uključuju hardverski modul za otklanjanje grešaka koji podržava složene operacije otklanjanja grešaka. Kada je mikroprocesor suspendovan, modul za otklanjanje grešaka može pristupiti mikroprocesorovim GPR-ovima, CSR-ovima, memoriji, eksternim uređajima itd. putem apstraktnih naredbi, instrukcija za raspoređivanje programskog bafera itd. Modul za otklanjanje grešaka može suspendovati i nastaviti rad mikroprocesora.
- Modul za otklanjanje grešaka prati RISC-V eksternu podršku za debug verziju 0.13.2 specifikaciju, detaljna dokumentacija se može preuzeti sa RISC-V International website.
Modul za otklanjanje grešaka
- Modul za otklanjanje grešaka unutar mikroprocesora, sposoban za obavljanje operacija otklanjanja grešaka koje izdaje host za otklanjanje grešaka, uključuje.
- Pristup registrima preko interfejsa za otklanjanje grešaka
- Resetujte, suspendujte i nastavite rad mikroprocesora preko interfejsa za otklanjanje grešaka
- Čitanje i pisanje memorije, registra instrukcija i eksternih uređaja preko interfejsa za otklanjanje grešaka
- Postavite više proizvoljnih instrukcija kroz interfejs za otklanjanje grešaka
- Postavite softverske prekidne tačke kroz interfejs za otklanjanje grešaka
- Postavite hardverske prekidne tačke kroz interfejs za otklanjanje grešaka
- Podržava automatsko izvršavanje apstraktnih naredbi
- Podržava otklanjanje grešaka u jednom koraku
- Napomena: V3A ne podržava hardverske prekidne tačke, V3B hardverske tačke prekida podržavaju podudaranje adresa instrukcija, a V3C hardverske tačke prekida podržavaju podudaranje adresa instrukcija i adresa podataka.
- Interni registri modula za otklanjanje grešaka koriste 7-bitni adresni kod, a sljedeći registri su implementirani unutar QingKe V3 serije mikroprocesora.
Tabela 7-1 Lista registra modula za otklanjanje grešaka
| Ime | Pristupna adresa | Opis |
| podaci0 | 0x04 | Registar podataka 0, može se koristiti za privremeno skladištenje podataka |
| podaci1 | 0x05 | Registar podataka 1, može se koristiti za privremeno skladištenje podataka |
| decontrol | 0x10 | Kontrolni registar modula za otklanjanje grešaka |
| dmstatus | 0x11 | Registar statusa modula za otklanjanje grešaka |
| hartinfo | 0x12 | Registar statusa mikroprocesora |
| sažetaka | 0x16 | Registar statusa apstraktne komande |
| komanda | 0x17 | Registar apstraktnih komandi |
| apstraktni auto | 0x18 | Automatsko izvršavanje apstraktne naredbe |
| progbuf0-7 | 0x20-0x27 | Registri keš memorije instrukcija 0-7 |
| haltsum0 | 0x40 | Registar statusa pauze |
- Host za otklanjanje grešaka može kontrolisati suspendovanje, nastavak, resetovanje mikroprocesora, itd. konfigurisanjem registra za dekontrolu. RISC-V standard definira tri tipa apstraktnih naredbi: pristupni registar, brzi pristup i pristupnu memoriju.
- QingKe V3A mikroprocesor podržava samo pristup registrima, drugi modeli podržavaju pristup registrima i memoriji, ali ne i brzi pristup. Pristup registrima (GPR, CSR) i kontinuirani pristup memoriji mogu se ostvariti apstraktnim naredbama.
- Modul za otklanjanje grešaka implementira 8 keš registra instrukcija progbuf0-7, a host za otklanjanje grešaka može keširati više instrukcija (koje mogu biti komprimovane instrukcije) u međuspremnik i može izabrati da nastavi izvršavanje instrukcija u registrima predmemorije instrukcija nakon izvršavanja apstraktne komande ili da direktno izvrši keširane instrukcije.
- Napomena da posljednja instrukcija u programima mora biti instrukcija “ebreak” ili “c.ebreak”. Pristup skladištu, periferiji, itd. je također moguć putem apstraktnih naredbi i instrukcija keširanih u programima.
- Svaki registar je detaljno opisan kako slijedi.
- Registar podataka 0 (podaci0)
Tablica 7-2 Definicija registra podataka
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | podaci0 | RW | Registar podataka 0, koji se koristi za privremeno skladištenje podataka | 0 |
Registar podataka 1 (podaci1)
Tabela 7-3 data1 definicija registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | podaci1 | RW | Registar podataka 1, koji se koristi za privremeno skladištenje podataka | 0 |
Kontrolni registar modula za otklanjanje grešaka (decontrol)
Ovaj registar kontroliše pauzu, resetovanje i nastavak rada mikroprocesora. Host za otklanjanje grešaka upisuje podatke u odgovarajuće polje da postigne pauzu (haltreq), resetovanje (ndmreset), nastavak (resumereq). Vi opisujete sljedeće.
Tabela 7-4 definicija dekontrolnog registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| 31 | haltreq | WO | 0: Obrišite zahtev za pauzu
1: Pošaljite zahtjev za pauzu |
0 |
| 30 | resumereq | W1 | 0: Nevažeći
1: Vratite trenutni mikroprocesor Napomena: Write 1 je važeći i hardver se briše nakon što se mikroprocesor oporavi |
0 |
| 29 | Rezervirano | RO | Rezervirano | 0 |
| 28 | ackhavereset | W1 | 0: Nevažeći
1: Obrišite bit statusa žetve mikroprocesora |
0 |
| [27:2] | Rezervirano | RO | Rezervirano | 0 |
| 1 | ndmreset | RW | 0: Brisanje resetovanja
1: Resetirajte cijeli sistem osim modula za otklanjanje grešaka |
0 |
| 0 | deaktivirati | RW | 0: Resetujte modul za otklanjanje grešaka
1: Modul za otklanjanje grešaka radi ispravno |
0 |
Registar statusa modula za otklanjanje grešaka (dm status)
- Ovaj registar se koristi za označavanje statusa modula za otklanjanje grešaka i registar je samo za čitanje sa sljedećim opisom svakog bita.
Table 7-5 definicija dmstatus registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:20] | Rezervirano | RO | Rezervirano | 0 |
| 19 | allhavereset | RO | 0: Nevažeći
1: Resetovanje mikroprocesora |
0 |
| 18 | anyhavereset | RO | 0: Nevažeći
1: Resetovanje mikroprocesora |
0 |
| 17 | allresumeack | RO | 0: Nevažeći
1: Resetovanje mikroprocesora |
0 |
| 16 | anyresumeack | RO | 0: Nevažeći
1: Resetovanje mikroprocesora |
0 |
| [15:14] | Rezervirano | RO | Rezervirano | 0 |
| 13 | aluvijalni | RO | 0: Nevažeći
1: Mikroprocesor nije dostupan |
0 |
| 12 | bilo koje koristi | RO | 0: Nevažeći
1: Mikroprocesor nije dostupan |
0 |
| 11 | svi trče | RO | 0: Nevažeći
1: Mikroprocesor radi |
0 |
| 10 | bilo trčanje | RO | 0: Nevažeći
1: Mikroprocesor radi |
0 |
| 9 | zaustavljen | RO | 0: Nevažeći
1: Mikroprocesor je u suspenziji |
0 |
| 8 | bilo zaustavljeno | RO | 0: Nevažeći
1: Mikroprocesor van suspenzije |
0 |
| 7 | autentificiran |
RO |
0: Provjera autentičnosti je potrebna prije korištenja modula za otklanjanje grešaka
1: Modul za otklanjanje grešaka je certificiran |
0x1 |
| [6:4] | Rezervirano | RO | Rezervirano | 0 |
| [3:0] | verzija | RO | Arhitektura podrške sistema za otklanjanje grešaka verzija 0010: V0.13 | 0x2 |
Registar statusa mikroprocesora (hartinfo)
Ovaj registar se koristi za pružanje informacija o mikroprocesoru hostu za otklanjanje grešaka i registar je samo za čitanje sa svakim bitom opisanim kako slijedi.
Tablica 7-6 definicija hartinfo registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:24] | Rezervirano | RO | Rezervirano | 0 |
| [23:20] | ogrebotina | RO | Broj podržanih scratch registara | 0x3 |
| [19:17] | Rezervirano | RO | Rezervirano | 0 |
| 16 | DataAccess | RO | 0: Registar podataka je mapiran na CSR adresu
1: Registar podataka je mapiran na memorijsku adresu |
0x1 |
| [15:12] | veličina podataka | RO | Broj registara podataka | 0x2 |
| [11:0] | podaci dodaj |
RO |
Offset adresa podataka registra podataka0,
čija je osnovna adresa 0xe0000000, podliježe specifičnom čitanju. |
0xXXX |
Apstraktna komandna kontrola i statusni registri (sažeci)
Ovaj registar se koristi za označavanje izvršenja apstraktne naredbe. Host za otklanjanje grešaka može pročitati ovaj registar da zna da li je posljednja apstraktna naredba izvršena ili ne i može provjeriti da li je greška generirana tokom izvršavanja apstraktne naredbe i tip greške, što je detaljno opisano kako slijedi.
Tabela 7-7 sadrži definicije registra sažetaka
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:29] | Rezervirano | RO | Rezervirano | 0 |
| [28:24] | progbufsize | RO | Označava broj programa međuspremnika programa
keš registri |
0x8 |
| [23:13] | Rezervirano | RO | Rezervirano | 0 |
| 12 | zauzet | RO | 0: Nijedna apstraktna naredba se ne izvršava
1: Postoje apstraktne komande koje se izvršavaju Napomena: Nakon izvršenja, hardver se briše. |
0 |
| 11 | Rezervirano | RO | Rezervirano | 0 |
| [10:8] | cmder | RW | Tip greške apstraktne komande 000: Nema greške
001: Izvršenje apstraktne naredbe za pisanje u naredbu, sažetke, apstraktne automatske registre ili čitanje i pisanje u registre podataka i progbuf 010: Ne podržava trenutnu apstraktnu naredbu 011: Izvršenje apstraktne naredbe sa izuzetkom 100: Mikroprocesor nije suspendovan ili nedostupan i ne može izvršiti apstraktne naredbe 101: Greška sabirnice 110: Greška bita parnosti tokom komunikacije 111: Ostale greške Napomena: Za upisivanje bitova 1 se koristi za brisanje nule. |
0 |
| [7:4] | Rezervirano | RO | Rezervirano | 0 |
| [3:0] | popust | RO | Broj registara podataka | 0x2 |
- Hostovi za otklanjanje grešaka mogu pristupiti GPR-ovima, CSR registrima i memoriji upisivanjem različitih konfiguracijskih vrijednosti u apstraktni registar komandi.
- Prilikom pristupa registrima, bitovi komandnog registra se definiraju na sljedeći način.
- Tablica 7-8 Definicija registra komandi prilikom pristupa registrima
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:24] | cmd tip | WO | Tip apstraktne komande 0: Pristupni registar;
1: Brzi pristup (nije podržan); 2: Pristup memoriji. |
0 |
| 23 | Rezervirano | WO | Rezervirano | 0 |
| [22:20] | aarsize | WO | Širina bita podataka pristupnog registra 000: 8-bit
001: 16-bit 010: 32-bit |
0 |
| 011: 64-bit (nije podržan) 100: 128-bit (nije podržan)
Napomena: Prilikom pristupa registrima s pomičnim zarezom FPRs, podržan je samo 32-bitni pristup. |
||||
| 19 | aarpostincrement | WO | 0: Nema efekta
1: Automatski povećajte vrijednost regno nakon pristupa registru |
0 |
| 18 | post exec | WO | 0: Nema efekta
1: Izvršite apstraktnu naredbu, a zatim izvršite naredbu u progbuf-u |
0 |
| 17 | transfer | WO | 0: Ne izvršavajte operaciju specificiranu upisom
1: Izvršite manipulaciju specificiranu upisom |
0 |
| 16 | pisati | WO | 0: Kopiranje podataka iz specificiranog registra u data0 1: Kopiranje podataka iz registra data0 u specificirani registar |
0 |
| [15:0] | regno | WO | Navedite pristupne registre 0x0000-0x0fff su CSR-ovi 0x1000-0x101f su GPR-ovi |
0 |
Prilikom pristupa memoriji, bitovi u komandnom registru se definiraju na sljedeći način.
Tabela 7-9 Definicija naredbe Registriraj pri pristupanju memoriji
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:24] | cmd tip | WO | Tip apstraktne komande 0: Pristupni registar;
1: Brzi pristup (nije podržan); 2: Pristup memoriji. |
0 |
| 23 | aamvirtual | WO | 0: Pristup fizičkoj adresi;
1: Pristup virtuelnoj adresi. |
0 |
| [22:20] | veličina ruke | WO | Pristupna memorija podataka širina bita 000: 8-bit;
001: 16-bitni; 010: 32-bitni; 011: 64-bitni (nije podržan); 100: 128-bit (nije podržano); |
0 |
| 19 | aampostincrement | WO | 0: Nema uticaja;
1: Nakon uspješnog pristupa memoriji, povećajte adresu pohranjenu u registru data1 za broj bajtova koji odgovara širini bita konfiguriranoj veličinom ruke. Aamsize=0, pristupa se po bajtu, podaci1 plus 1. Aamsize=1, pristupa se poluriječi, podaci1 plus 2. aamsize=2, pristupa se putem bita, podaci1 plus 4. |
0 |
| 18 | post exec | WO | 0: Nema uticaja;
1: Izvršite naredbu u progbuf-u nakon izvršenja apstraktne naredbe. |
0 |
| 17 | Rezerva | RO | Rezervirano | 0 |
|
16 |
pisati |
WO |
0: Čitanje podataka sa adrese specificirane sa data1 u data0
1: Upišite podatke u data0 na adresu koju je odredio podaci1. |
0 |
|
[15:14] |
specifičan za cilj |
WO |
Definicija načina čitanja i pisanja Napišite:
00, 01: Upišite direktno u memoriju; 10: Nakon što su podaci u data0 ILI sa bitovima podataka u memoriji, rezultat se upisuje u memoriju (podržan je samo pristup riječi). 11: Nakon sumiranja podataka u data0 sa bitovima podataka u memoriji, upišite rezultat u memoriju (podržan je samo pristup riječi). Pročitajte: 00, 01, 10, 11: Čitajte 0 direktno iz memorije. |
0 |
| [13:0] | Rezerva | RO | Rezervirano |
Registar automatskog izvršavanja apstraktnih naredbi (apstraktni auto)
Ovaj registar se koristi za konfiguraciju modula za otklanjanje grešaka. Prilikom čitanja i pisanja progbufx-a i podataka modula za otklanjanje grešaka, apstraktna komanda se može ponovo izvršiti.
Opis ovog registra je sljedeći:
Tablica 7-10 apstraktna definicija automatskog registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:16] | autoexecprogbuf | RW | Ako je bit postavljen, odgovarajuće čitanje i pisanje progbufx-a će uzrokovati da se apstraktna naredba u registru komandi ponovo izvrši.
Napomena: V3 serija je dizajnirana sa 8 progbufova, odgovara bitovima [23:16]. |
0 |
| [15:12] | Rezerva | RO | Rezervirano | 0 |
| [11:0] | autoexecdata |
RW |
Ako je bit postavljen na 1, odgovarajuće čitanje i pisanje registra podataka će uzrokovati da se apstraktna naredba u registru komandi ponovo izvrši.
Napomena: V3 serija je dizajnirana sa dva podatka registre, koji odgovaraju bitovima [1:0]. |
0 |
Registar predmemorije instrukcija (progbufx)
Ovaj registar se koristi za pohranjivanje bilo koje instrukcije i implementaciju odgovarajuće operacije, uključujući 8, koja treba obratiti pažnju na posljednje izvršenje koje treba biti “break” ili “c.ebreak”.
Tablica 7-11 definicija progbuf registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | progbuf | RW | Kodiranje instrukcija za operacije predmemorije, koje
može uključivati upute za kompresiju |
0 |
Registar statusa pauze (haltsum0)
Ovaj registar se koristi za označavanje da li je mikroprocesor suspendovan ili ne. Svaki bit označava suspendovani status mikroprocesora, a kada postoji samo jedno jezgro, samo najniži bit ovog registra se koristi da ga označi.
Tabela 7-12 definicija registra haltsum0
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:1] | Rezervirano | RO | Rezervirano | 0 |
| 0 | haltsum0 | RO | 0: Mikroprocesor radi normalno
1: Mikroprocesor stop |
0 |
- Pored gore navedenih registara modula za otklanjanje grešaka, funkcija za otklanjanje grešaka uključuje i neke CSR registre, uglavnom debug kontrolni i statusni registar dcsr i pokazivač instrukcija za otklanjanje grešaka dpc, koji su detaljno opisani kako sledi.
- Kontrola otklanjanja grešaka i registar statusa (dcsr)
Tabela 7-13 definicija dcsr registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:28] | xdebugver | DRO | 0000: Eksterno otklanjanje grešaka nije podržano 0100: Podržava standardno eksterno otklanjanje grešaka
1111: Eksterno otklanjanje grešaka je podržano, ali se ne ispunjava specifikacija |
0x4 |
| [27:16] | Rezervirano | DRO | Rezervirano | 0 |
| 15 | break | DRW | 0: Komanda prekida u strojnom načinu se ponaša kako je opisano u privilegiji file
1: Komanda prekida u mašinskom režimu može ući u režim za otklanjanje grešaka |
0 |
| [14:13] | Rezervirano | DRO | Rezervirano | 0 |
| 12 | raskid |
DRW |
0: Komanda prekida u korisničkom načinu se ponaša kako je opisano u privilegiji file
1: Komanda break u korisničkom načinu može ući u način za otklanjanje grešaka |
0 |
| 11 | korak | DRW | 0: Prekidi su onemogućeni u jednom koraku otklanjanja grešaka
1: Omogućite prekide u otklanjanju grešaka u jednom koraku |
0 |
| 10 | Rezervirano | DRO | Rezervirano | 0 |
| 9 | vreme zaustavljanja | DRW | 0: Sistemski tajmer radi u načinu za otklanjanje grešaka
1: Sistemski tajmer se zaustavlja u načinu za otklanjanje grešaka |
0 |
| [8:6] | uzrok | DRO | Razlozi za ulazak u otklanjanje grešaka
001: Ulazak u otklanjanje grešaka u obliku naredbe prekida (prioritet 3) 010: Ulazak u otklanjanje grešaka u obliku modula okidača (prioritet 4, najviši) 011: Ulazak u otklanjanje grešaka u obliku zahtjeva za pauzu (prioritet 1) 100: otklanjanje grešaka u obliku otklanjanja grešaka u jednom koraku (prioritet 0, najniži) |
0 |
| 101: uđite u način za otklanjanje grešaka direktno nakon resetiranja mikroprocesora (prioritet 2) Ostalo: rezervirano | ||||
| [5:3] | Rezervirano | DRO | Rezervirano | 0 |
| 2 | korak | DRW | 0: Isključite otklanjanje grešaka u jednom koraku
1: Omogućite otklanjanje grešaka u jednom koraku |
0 |
| [1:0] | Prev | DRW | Privilegija mod 00: Korisnički način rada
01: Nadzorni režim (nije podržan) 10: Rezervisano 11: Mašinski način rada Napomena: Zabilježite privilegirani način rada kada ulazite u mod za otklanjanje grešaka, program za otklanjanje grešaka može izmijeniti ovu vrijednost kako bi izmijenio privilegirani način kada izađete iz debug-a |
0 |
Programski pokazivač načina rada za otklanjanje grešaka (DPC)
- Ovaj registar se koristi za pohranjivanje adrese sljedeće instrukcije koja će se izvršiti nakon što mikroprocesor uđe u debug mod, a njegova vrijednost se ažurira različitim pravilima u zavisnosti od razloga za ulazak u debug. dpc registar je detaljno opisan kako slijedi.
Tablica 7-14 definicije dpc registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | DPC | DRW | Adresa instrukcije | 0 |
Pravila za ažuriranje registara prikazana su u sljedećoj tabeli.
Tabela 7-15 dpc pravila ažuriranja
| Unesite metodu za otklanjanje grešaka | dpc Pravila ažuriranja |
| break | Adresa Ebreak instrukcije |
| jedan korak | Adresa instrukcije sljedeće instrukcije tekuće instrukcije |
| trigger modul | Privremeno nije podržano |
| zahtjev za zaustavljanje | Adresa sljedeće instrukcije koja će se izvršiti prilikom ulaska u Debug |
Sučelje za otklanjanje pogrešaka
- Za razliku od standardnog JTAG interfejs definisan RISC-V, mikroprocesor serije QingKe V3 usvaja 1-žični/2-žični serijski interfejs za otklanjanje grešaka i prati WCH protokol za otklanjanje grešaka V1.0.
- Interfejs za otklanjanje grešaka je odgovoran za komunikaciju između hosta za otklanjanje grešaka i modula za otklanjanje grešaka i realizuje operaciju čitanja/pisanja hosta za otklanjanje grešaka u registre modula za otklanjanje grešaka.
- WCH je dizajnirao WCH_Link i otvorio njegov shematski i programski binarni program files, koji se može koristiti za debagovanje svih mikroprocesora RISC-V arhitekture.
- Pogledajte WCH priručnik za protokol za otklanjanje grešaka za specifične protokole interfejsa za otklanjanje grešaka.
CSR lista registara
- RISC-V arhitektura definira niz kontrolnih i statusnih registara (CSR) za kontrolu i snimanje radnog statusa mikroprocesora.
- Neki od CSR-a su predstavljeni u prethodnom odeljku, a ovo poglavlje će detaljno opisati CSR registre implementirane u QingKe V3 seriju mikroprocesora.
CSR lista registara
Tabela 8-1 Lista mikroprocesorskih CSR registara
| Tip | Ime | CSR Adresa | Pristup | Opis |
| RISC-V
Standard CSR |
marchid | 0xF12 | MRO | Registar brojeva arhitekture |
| mimpid | 0xF13 | MRO | Registar numeracije implementacije hardvera | |
| mstatus | 0x300 | MRW | Registar statusa | |
| misa | 0x301 | MRW | Registar skupa hardverskih instrukcija | |
| mtvec | 0x305 | MRW | Registar osnovnih adresa izuzetaka | |
| mscratch | 0x340 | MRW | Mašinski način rada staging register | |
| MEPC | 0x341 | MRW | Registar pokazivača programa izuzetaka | |
| mcause | 0x342 | MRW | Registar uzroka izuzetaka | |
| mtval | 0x343 | MRW | Registar vrijednosti izuzetaka | |
| pmpcfg | 0x3A0+i | MRW | PMP konfiguracijski registar | |
| pmpaddr | 0x3B0+i | MRW | PMP adresni registar | |
| tselect | 0x7A0 | MRW | Registar odabira okidača za otklanjanje grešaka | |
| tdata1 | 0x7A1 | MRW | Registar podataka okidača za otklanjanje grešaka 1 | |
| tdata2 | 0x7A2 | MRW | Registar podataka okidača za otklanjanje grešaka 2 | |
| dcsr | 0x7B0 | DRW | Debug kontrola i statusni registri | |
| dpc | 0x7B1 | DRW | Registar programskog pokazivača režima za otklanjanje grešaka | |
| dscratch0 | 0x7B2 | DRW | Način otklanjanja grešaka stagregistar 0 | |
| dscratch1 | 0x7B3 | DRW | Način otklanjanja grešaka stagregistar 1 | |
|
CSR definiran od strane dobavljača |
gintenr | 0x800 | URW | Globalni registar omogućavanja prekida |
| intsyscr | 0x804 | URW | Registar kontrole sistema prekida | |
| corefgr | 0xBC0 | MRW | Registar konfiguracije mikroprocesora | |
| inestcr | 0xBC1 | MRW | Prekinuti ugniježđeni kontrolni registar |
RISC-V Standardni CSR registri
- Registar brojeva arhitekture (marchid)
- Ovaj registar je registar samo za čitanje koji označava trenutni broj hardverske arhitekture mikroprocesora, koji se uglavnom sastoji od koda dobavljača, koda arhitekture, koda serije i koda verzije. Svaki od njih je definiran na sljedeći način.
Tabela 8-2 Definicija registra marhida
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| 31 | Rezervirano | MRO | Rezervirano | 1 |
| [30:26] | Vender0 | MRO | Šifra proizvođača 0
Fiksirano na slovo “W” koda |
0x17 |
| [25:21] | Vender1 | MRO | Šifra proizvođača 1
Fiksirano na slovo “C” koda |
0x03 |
| [20:16] | Vender2 | MRO | Šifra proizvođača 2
Fiksirano na slovo “H” koda |
0x08 |
| 15 | Rezervirano | MRO | Rezervirano | 1 |
| [14:10] | Arch | MRO | Kod arhitekture | 0x16 |
| RISC-V arhitektura je fiksirana na slovni “V” kod | ||||
| [9:5] | Serial | MRO | Šifra serije
QingKe V3 serija, fiksirana na broj "3" |
0x03 |
| [4:0] | Verzija | MRO | Šifra verzije
Može biti verzija “A”, “B”, “C” i druga slova koda |
x |
Broj proizvođača i broj verzije su abecedni, a serijski broj je numerički. Tabela kodiranja slova prikazana je u sljedećoj tabeli.
Tabela 8-3 Tabela abecednog mapiranja
| 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 |
- Među njima, QingKe V3A mikroprocesor, registar čita natrag na 0.
Registar numeracije implementacije hardvera (providan)
- Ovaj registar se uglavnom sastoji od kodova dobavljača, od kojih je svaki definisan na sledeći način.
Tablica 8-4 definicija jasnog registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| 31 | Rezervirano | MRO | Rezervirano | 1 |
| [30:26] | Vender0 | MRO | Šifra proizvođača 0
Fiksirano na slovo “W” koda |
0x17 |
| [25:21] | Vender1 | MRO | Šifra proizvođača 1
Fiksirano na slovo “C” koda |
0x03 |
| [20:16] | Vender2 | MRO | Šifra proizvođača 2
Fiksirano na slovo “H” koda |
0x08 |
| 15 | Rezervirano | MRO | Rezervirano | 1 |
| [14:8] | Rezervirano | MRO | Rezervirano | 0 |
| [7:4] | Minor | MRO | Subverzioni broj | 0xX |
| [3:0] | Major | MR0 | Glavni broj verzije | 0xX |
- Ovaj registar je čitljiv u bilo kojoj mašinskoj implementaciji, a u procesoru serije QingKe V3A, ovaj registar se vraća na nulu.
Registar stanja strojnog načina rada (mstatus)
- Ovaj registar je djelimično opisan u prethodnom dijelu, a njegovi članovi su pozicionirani na sljedeći način.
Tablica 8-5 Definicija mstatus registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:13] | Rezervirano | MRO | Rezervirano | 0 |
| [12:11] | MPP | MRW | Privilegirani način rada prije ulaska u pauzu | 0 |
| [10:8] | Rezervirano | MRO | Rezervirano | 0 |
| 7 | MPIE | MRW | Stanje omogućavanja prekida prije ulaska u prekid | 0 |
| [6:4] | Rezervirano | MRO | Rezervirano | 0 |
| 3 | MIE | MRW | Omogućavanje prekida rada stroja | 0 |
| [2:0] | Rezervirano | MRO | Rezervirano | 0 |
- MPP polje se koristi za spremanje privilegiranog načina rada prije ulaska u izuzetak ili prekid i koristi se za vraćanje privilegiranog načina rada nakon izlaska iz izuzetka ili prekida. MIE je globalni bit za omogućavanje prekida, a kada se unese izuzetak ili prekid, vrijednost MPIE se ažurira na vrijednost MIE, a treba napomenuti da se u mikroprocesorima serije QingKe V3 MIE neće ažurirati na 0 prije posljednjeg nivoa ugniježđenih prekida kako bi se osiguralo da se ugniježđenje prekida u strojnom načinu i dalje izvršava. Kada se izađe iz izuzetka ili prekida, mikroprocesor se vraća u strojni način rada koji je sačuvao MPP, a MIE se vraća na vrijednost MPIE.
- QingKe V3 mikroprocesor podržava Mašinski način i Korisnički način rada, ako trebate učiniti da mikroprocesor radi samo u Mašinskom načinu, možete postaviti MPP na 0x3 u inicijalizaciji pokretanja file, odnosno, nakon vraćanja, uvijek će ostati u strojnom načinu rada.
Registar skupa hardverskih instrukcija (misa)
- Ovaj registar se koristi za označavanje arhitekture mikroprocesora i podržanih ekstenzija skupa instrukcija, od kojih je svako opisano kako slijedi.
Tablica 8-6 definicija misa registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:30] | MXL | MRO | Dužina mašinske reči 1:32
2:64 3:128 |
1 |
| [29:26] | Rezervirano | MRO | Rezervirano | 0 |
| [25:0] | Ekstenzije | MRO | Ekstenzije skupa instrukcija | x |
- MXL se koristi za označavanje dužine riječi mikroprocesora, QingKe V3 su 32-bitni mikroprocesori, a domen je fiksiran na 1.
- Ekstenzije se koriste da naznače da mikroprocesor podržava detalje proširenog skupa instrukcija, svako označava klasu ekstenzija, njegov detaljan opis je prikazan u sljedećoj tabeli.
Tabela 8-7 Detalji proširenja skupa instrukcija
| Bit | Ime | Opis |
| 0 | A | Atomska ekstenzija |
| 1 | B | Provizorno rezervirano za proširenje Bit-Manipulation |
| 2 | C | Komprimirana ekstenzija |
| 3 | D | Proširenje s pomičnim zarezom dvostruke preciznosti |
| 4 | E | RV32E baza ISA |
| 5 | F | Proširenje s pomičnim zarezom jednostruke preciznosti |
| 6 | G | Prisutne dodatne standardne ekstenzije |
| 7 | H | Hipervizorsko proširenje |
| 8 | I | RV32I/64I/128I baza ISA |
| 9 | J | Provizorno rezervirano za proširenje za dinamički prevedene jezike |
| 10 | K | Rezervirano |
| 11 | L | Provizorno rezervirano za ekstenziju decimalnog plutajućeg zareza |
| 12 | M | Integer Multiply/Divide ekstenzija |
| 13 | N | Podržani su prekidi na nivou korisnika |
| 14 | O | Rezervirano |
| 15 | P | Provizorno rezervirano za proširenje Packed-SIMD |
| 16 | Q | Proširenje s pomičnim zarezom četverostruke preciznosti |
| 17 | R | Rezervirano |
| 18 | S | Implementiran režim nadzora |
| 19 | T | Provizorno rezervirano za ekstenziju Transakcione memorije |
| 20 | U | Implementiran korisnički način rada |
| 21 | V | Provizorno rezervirano za vektorsku ekstenziju |
| 22 | W | Rezervirano |
| 23 | X | Prisutne nestandardne ekstenzije |
| 24 | Y | Rezervirano |
| 25 | Z | Rezervirano |
- Za nprampDakle, za QingKe V3A mikroprocesor, vrijednost registra je 0x401001105, što znači da je podržana arhitektura skupa instrukcija RV32IMAC i ima implementaciju korisničkog načina rada.
Registar osnovne adrese iznimke strojnog načina (mtvec)
- Ovaj registar se koristi za pohranjivanje osnovne adrese obrađivača izuzetaka ili prekida, a niža dva bita se koriste za konfiguriranje načina rada i metode identifikacije vektorske tablice kao što je opisano u Odjeljku 3.2.
Mašinski način rada stagregistar (mscratch)
Tabela 8-8 definicije mscratch registara
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | mscratch | MRW | Skladištenje podataka | 0 |
Ovaj registar je 32-bitni registar koji se može čitati i pisati u strojnom načinu rada za privremeno skladištenje podataka. Za nprampda, kada se unese izuzetak ili rukovalac prekida, pokazivač korisničkog steka SP se pohranjuje u ovaj registar, a pokazivač steka prekida se dodeljuje SP registru. Nakon izlaska iz izuzetka ili prekida, vratite vrijednost SP pokazivača steka korisnika ispočetka. To jest, stek prekida i korisnički stog mogu biti izolovani.
Registar pokazivača programa za izuzetak strojnog načina (mapa)
Tabela 8-9 definicije mepc registara
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | mepc | MRW | Pokazivač procedure izuzeća | 0 |
- Ovaj registar se koristi za spremanje programskog pokazivača prilikom unosa izuzetka ili prekida.
- Koristi se za spremanje PC pokazivača instrukcija prije unošenja izuzetka kada se generira izuzetak ili prekid, a mepc se koristi kao povratna adresa kada se obrađuje izuzetak ili prekid i koristi za povratak izuzetka ili prekida.
- Međutim, važno je to napomenuti.
- Kada se dogodi izuzetak, mepc se ažurira na PC vrijednost instrukcije koja trenutno generiše izuzetak.
- Kada dođe do prekida, mepc se ažurira na PC vrijednost sljedeće instrukcije.
- Kada trebate vratiti izuzetak nakon obrade izuzetka, obratite pažnju na izmjenu vrijednosti mepc-a, a više detalja možete pronaći u poglavlju 2 Izuzeci.
Registar uzroka izuzetaka u strojnom načinu (mcause)
Tablica 8-10 uzrokuje definiciju registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| 31 | Prekini | MRW | Polje indikacije prekida 0: Izuzetak
1: Prekid |
0 |
| [30:0] | Šifra izuzetka | MRW | Za kodove izuzetaka, pogledajte Tabelu 2-1 za detalje | 0 |
- Ovaj registar se uglavnom koristi za pohranjivanje uzroka izuzetka ili broja prekida prekida. Njegov najviši bit je polje Interrupt, koje se koristi da označi da li je trenutna pojava izuzetak ili prekid.
- Donji bit je kod izuzetka koji se koristi za označavanje specifičnog uzroka. Njegovi detalji se mogu naći u poglavlju 2 Izuzeci.
Registar vrijednosti izuzetaka u načinu rada stroja (mtval)
Tabela 8-11 definicija mtval registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | mtval | MRW | Vrijednost izuzetka | 0 |
- Ovaj registar se koristi za čuvanje vrijednosti koja je izazvala izuzetak kada se dogodi izuzetak. Za detalje kao što su vrijednost i vrijeme njegovog skladištenja, pogledajte Poglavlje 2 Izuzeci.
PMP konfiguracijski registar (pmpcfg
- Ovaj registar se uglavnom koristi za konfiguraciju jedinice za zaštitu fizičke memorije, a svakih 8 bitova ovog registra se koristi za konfiguraciju zaštite područja. Molimo pogledajte Poglavlje 4 za detaljnu definiciju.
PMP adresni registar (pmpaddr
- Ovaj registar se uglavnom koristi za konfiguraciju adrese jedinice za zaštitu fizičke memorije, koja kodira gornja 32 bita 34-bitne fizičke adrese. Molimo pogledajte Poglavlje 4 za specifičnu metodu konfiguracije.
Registar programskog pokazivača načina rada za otklanjanje grešaka (DPC)
- Ovaj registar se koristi za pohranjivanje adrese sljedeće instrukcije koja će se izvršiti nakon što mikroprocesor uđe
- Režim za otklanjanje grešaka i njegova vrijednost ažuriraju se različitim pravilima ovisno o razlogu za ulazak u program za otklanjanje grešaka. Pogledajte odeljak 6.1 za detaljan opis.
Registar odabira okidača za otklanjanje grešaka (odaberi)
- Važi samo za mikroprocesore koji podržavaju hardverske prekidne tačke i podržavaju najviše 4-kanalne tačke prekida, a njegova niža 2 bita su važeća.
- Kada konfigurišete svaku tačku prekida kanala, potrebno je da izaberete odgovarajući kanal kroz ovaj registar pre konfigurisanja.
Tabela 8-12 odaberite definiciju registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:2] | Rezervirano | MRO | Rezervirano | 0 |
| [1:0] |
SELECT |
MRW |
Registar za odabir kanala tačke prekida je konfigurisan, odnosno, nakon što je odabran odgovarajući kanal, registrima tdata1 i tdata2 se može upravljati da bi se konfigurisala tačka prekida
informacije. |
X |
Registar podataka okidača za otklanjanje grešaka 1(tdata1)
Vrijedi samo za mikroprocesore koji podržavaju hardverske prekidne tačke. Mikroprocesori podržavaju samo adrese instrukcija i adrese podataka prelomne tačke, gde je bit TYPE registra tdata1 fiksna vrednost 2, a ostali bitovi su u skladu sa definicijom kontrole u standardu za otklanjanje grešaka.
Tablica 8-13 Definicija registra tdata1
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:28] | TYPE | MRO | Definicija tipa prelomne tačke, tip kontrole. | 0x2 |
|
27 |
DMODE |
MRO |
0: Relevantni registri flip-flopa mogu se modifikovati iu mašinskom iu režimu za otklanjanje grešaka;
1: Samo način otklanjanja grešaka može modificirati relevantne registre flip-flopa. |
1 |
| [26:21] |
MASKMAX |
MRO |
Kada je MATCH=1, dozvoljen je maksimalni opseg eksponencijalne snage uparivanja, to jest, maksimalni dozvoljeni raspon podudaranja je 231 bajt. |
0x1F |
| [20:13] | Rezervirano | MRO | Rezervirano | 0 |
|
12 |
AKCIJA |
MRW |
Postavite način obrade prilikom pokretanja tačke prekida:
0: Prilikom aktiviranja, unesite tačku prekida i pozovite nazad prekid; 1: Uđite u mod za otklanjanje grešaka kada se aktivira. |
0 |
| [11:8] | Rezervirano | MRO | Rezervirano | 0 |
|
7 |
MATCH |
MRW |
Podudarna konfiguracija pravila:
0: Podudaranje kada je vrijednost okidača jednaka TDATA2; 1: Vrijednost okidača odgovara visokom m bitu TDATA2, gdje je m = 31–n, a n je prvi 0 citat TDATA2 (počevši od nižeg bita). |
0 |
|
6 |
M |
MRW |
Omogućite flip-flop u M načinu:
0: Onemogućite okidač u M modu; 1: Omogućite okidač u M režimu. |
0 |
| [5:4] | Rezervirano | MRO | Rezervirano | 0 |
|
3 |
U |
MRW |
Omogući okidač u načinu rada U:
0: Onemogućite okidač u U modu; 1: Omogućite okidač u načinu rada U. |
0 |
|
2 |
EXECUTE |
MRW |
Omogućen okidač adrese za čitanje instrukcija: 0: Onemogućeno;
1: Omogući. |
0 |
|
1 |
STORE |
MRW |
Omogućen okidač adrese upisivanja podataka: 0: Onemogućeno;
1: Omogući. |
0 |
|
0 |
LOAD |
MRW |
Omogućen okidač adrese čitanja podataka: 0: Onemogućeno;
1: Omogući. |
0 |
Registar podataka okidača za otklanjanje grešaka 2(tdata2)
Vrijedi samo za mikroprocesore koji podržavaju hardverske prekidne točke i koristi se za spremanje odgovarajuće vrijednosti okidača.
Tablica 8-14 Definicija registra tdata2
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | TDATA2 | MRW | Koristi se za spremanje odgovarajućih vrijednosti. | X |
Kontrola otklanjanja grešaka i registar statusa (dcsr)
Ovaj registar se koristi za kontrolu i snimanje tekućeg stanja moda za otklanjanje grešaka. Pogledajte odeljak 7.1 za detalje.
Programski pokazivač načina rada za otklanjanje grešaka (DPC)
Ovaj registar se koristi za pohranjivanje adrese sljedeće instrukcije koja će se izvršiti nakon što mikroprocesor uđe u mod za otklanjanje grešaka, njegova vrijednost je različita prema razlozima ulaska u mod za otklanjanje grešaka, a različita su i pravila ažuriranja. Pogledajte odeljak 7.1 za detaljan opis.
Način otklanjanja grešaka stagregistar (dscratch0-1)
Ova grupa registara se koristi za privremeno skladištenje podataka u režimu za otklanjanje grešaka.
Tabela 8-15 dscratch0-1 definicije registra
| Bit | Ime | Pristup | Opis | Poništi vrijednost |
| [31:0] | dscratch | DRW | Podaci o načinu otklanjanja grešaka staging value | 0 |
Korisnički definiran CSR registar
Registar za omogućavanje globalnog prekida korisničkog načina (gintenr)
- Ovaj registar se koristi za kontrolu omogućavanja i maske globalnog prekida. Omogućavanje i maska globalnog prekida u mašinskom režimu mogu se kontrolisati pomoću MIE i MPIE bitova u statusu, ali ovim registrom se ne može upravljati u korisničkom režimu.
- Dok globalni prekid omogućava registar, gintenr je mapiranje MIE i MPIE u statusu.
- U korisničkom modu, namjera se može koristiti za postavljanje i brisanje MIE i MPIE, kao što je opisano u Odjeljku 3.2 za detalje.
Napomena
- Globalni prekidi ne uključuju demaskirane prekide NMI i izuzetke.
Registar kontrole sistema prekida (intsyscr)
Ovaj registar se uglavnom koristi za konfigurisanje dubine gniježđenja prekida, pritiskanja hardverskog steka i drugih povezanih funkcija, kao što je opisano u Odjeljku 3.2 za detalje.
Registar konfiguracije mikroprocesora (corecfgr)
Ovaj registar se koristi za kontrolu da li je NMI prekid dozvoljen nakon prelivanja prekida i da li se zahtjev za prekidom briše kada se izvrši instrukcija ograde. Molimo pogledajte odjeljak 3.2 za konkretnu definiciju.
Prekinuti ugniježđeni kontrolni registar (inestcr)
Ovaj registar se koristi za označavanje stanja ugniježđenja prekida i da li se ono prelijeva ili ne, te za kontrolu maksimalnog nivoa ugniježđenja. Molimo pogledajte odjeljak 3.2 za konkretnu definiciju.
Dokumenti / Resursi
![]() |
WH V3 mikroprocesor [pdf] Korisnički priručnik V3 mikroprocesor, V3, mikroprocesor |





