WH-logo

WH V3 mikroprocesor

WH-V3-Mikroprocesor-PRO

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.

  1. 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.
  2. 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.
  1. 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.
  2. 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.

  1. Ako je izuzetak uzrokovan pristupom memoriji, hardver će pohraniti adresu pristupa memoriji u vrijeme iznimke u mtval.
  2. Ako je izuzetak uzrokovan nezakonitom instrukcijom, hardver će pohraniti instrukcijski kod instrukcije u mtval.
  3. Ako je izuzetak uzrokovan hardverskom prelomnom tačkom, hardver će pohraniti PC vrijednost na tački prekida u mtval.
  4. Za druge izuzetke, hardver postavlja vrijednost mtval na 0, kao što je prekid, izuzetak uzrokovan pozivnom instrukcijom.
  5. 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.

  1. 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.
  2. 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.
  3. 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.WH-V3-Mikroprocesor-sl.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:

  1. NMI, EXC, ECALL-M, ECALL-U i BREAKPOINT su uvijek omogućeni prema zadanim postavkama.
  2. ECALL-M, ECALL-U i BREAKPOINT su slučaj EXC.
  3. 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 0

 V3B:

[31:8]: Rezervirano, fiksno na 0 [7:5]: Prag prioriteta [4:0]: Rezervirano, fiksno na 0

 V3C:

[31:8]: Rezervirano, fiksno na 0 [7:5]: Prag prioriteta [4:0]: Rezervirano, fiksno na 0

Napomena: 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;
11: Režim prethodnog dohvaćanja 2. Kada je uključena funkcija prethodnog preuzimanja instrukcija, CPU će nastaviti da pristupa memoriji instrukcija, a ako je bafer instrukcija pun, CPU će nastaviti s ponovnim pokušajem adrese. Ovaj način rada ima najviše performanse i potrošnju energije. Neuspjeh CPU predviđanja i ponovni pokušaj će uvesti redundantne operacije preuzimanja i mogu nastaviti zauzimati memorijski propusni opseg. (Za ROM područje, ponovni pokušaj znači diskontinuirani pristup adresi, pa se preporučuje da uključite ROM_ACC_EN).

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.WH-V3-Mikroprocesor-sl.2

Napomena:

  1. 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”))).
  2. 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.WH-V3-Mikroprocesor-sl.3

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 pmpcfg0WH-V3-Mikroprocesor-sl.4

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 WH-V3-Mikroprocesor-sl.5

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:

  1. 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).
  2. 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.
  3. 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):

  1. Ako je B _ ADDR–A_ADDR = = 22, NA4 mod se usvaja;
  2. Ako je B_ ADDR–A_ADDR = = 2(G+2), G≥1, a _ adresa je 2(g+2), usvaja se NAPOT metoda;
  3. 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

  1. Mikroprocesor se može probuditi izvorom prekida na koji je reagirao kontroler prekida. Nakon buđenja, mikroprocesor prvo izvršava funkciju prekida.
  2. 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.

  1. Interni ili eksterni događaji, kada nema potrebe za konfiguracijom kontrolera prekida, probudite se i nastavite s izvršavanjem programa.
  2. Ako je izvor prekida omogućen, mikroprocesor se budi kada se generira prekid, a nakon buđenja, mikroprocesor prvi izvršava funkciju prekida.
  3. 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.
  4. 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

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *