I-Microsoft Ivula i-CHERIoT, Isixazululo se-Hardware Sokuthuthukisa Ukuphepha Kwekhodi Ye-C

I-Microsoft ithole intuthuko ehlobene nephrojekthi ye-CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), okuhloswe ngayo ukuvimba izinkinga zokuphepha kukhodi ekhona ku-C no-C++. I-CHERIoT inikezela ngesixazululo esikuvumela ukuthi uvikele izisekelo zekhodi ezikhona ze-C/C++ ngaphandle kwesidingo sokusebenza kabusha. Ukuvikela kwenziwa ngokusebenzisa inhlanganisela eguquliwe esebenzisa isethi ekhethekile enwetshiwe yemiyalo yephrosesa (ISA), ehlinzekwa iphrosesa kanye nezinga le-hardware yokuqapha ukufinyelela kwememori, ukuhlola ukunemba komsebenzi ngezikhombisi kanye nokuqinisekisa ukuhlukaniswa kwamabhulokhi wekhodi.

Iphrojekthi idalwe ngeso lokuthi imvelo yezinga eliphansi lolimi C iba umthombo wamaphutha lapho usebenza ngenkumbulo, okuholela ezinkingeni ezinjengokuchichima kwe-buffer, ukufinyelela kunkumbulo ekhululiwe kakade, ukuhoxiswa kwezikhombisi, noma ukukhulula kabili. . Ukuzijwayeza kubonisa ukuthi ngisho nezinkampani ezinkulu ezifana ne-Google ne-Microsoft, ezinenqubomgomo yokubuyekeza izinguquko eziqinile futhi zisebenzisa izindlela zesimanje zentuthuko namathuluzi okuhlaziya amile, azikwazi ukuqinisekisa ukungabikho kwamaphutha lapho usebenza ngenkumbulo (isibonelo, cishe u-70% wobuthakathaka ku-Microsoft. futhi i-Google ibangelwa ukuphatha inkumbulo okungaphephile).

Inkinga ingaxazululwa ngokusebenzisa izilimi zokuhlela eziqinisekisa ukusebenza okuphephile ngenkumbulo, noma ukubopha ngokuhlolwa okwengeziwe, isibonelo, ngokusebenzisa izikhombi ezijwayelekile ezifana ne-MiraclePtr (raw_ptr), eyenza ukuhlola okwengeziwe ukuze kufinyelelwe ezindaweni zememori ekhululiwe. Kodwa izindlela ezinjalo zifaneleka kakhulu ikhodi entsha, futhi ukulungisa kabusha amaphrojekthi akhona e-C/C++ kuyinkinga impela, ikakhulukazi uma yakhelwe ukusebenza ezindaweni ezinezisetshenziswa, njengamasistimu ashumekiwe kanye namadivayisi we-inthanethi Yezinto.

Izingxenye zehadiwe ze-CHERIoT ziklanywe njengesilawuli esincane esisekelwe ekwakhiweni kwe-RISC-V, sisebenzisa ukwakhiwa kwephrosesa evikelwe i-CHERI (Capability Hardware Extension to RISC-V), ehlinzeka ngemodeli yokufinyelela inkumbulo elawulwayo okusekelwe β€œekukwazini” (ukufunda nokubhala ngakunye. ukusebenza kumemori kugunyaziwe) . Ngokusekelwe kwi-instruction set architecture (ISA) enikezwe ku-CHERIoT, kwakhiwa imodeli yesofthiwe eqinisekisa ukuphepha kokusebenza ngenkumbulo ezingeni lezinto ezingazodwana, ihlinzeka ngokuvikeleka ekufinyeleleni inkumbulo esivele ikhululiwe, futhi isebenzisa isistimu yokuhlukanisa inkumbulo engasindi. . Imodeli yokuvikela isofthiwe ecacisiwe ibonakala ngokuqondile kumodeli yolimi ye-C/C++, eyivumela ukuthi isetshenziselwe ukuvikela izinhlelo zokusebenza ezikhona (kudingeka kuphela ukubuyisela nokusebenzisa imishini esekela i-ISA CHERIOT).

Isixazululo esihlongozwayo sikuvumela ukuthi uvimbele amaphutha adala ukuthi into idlulele ngale kwemingcele yenkumbulo, ayikuvumeli ukushintshwa kwesikhombi (zonke izinkomba kufanele zenziwe ezikhombi ezikhona), futhi iqaphe ukufinyelela kwememori ngemuva kokukhulula (noma yikuphi ukufinyelela kumemori usebenzisa okungalungile. i-pointer noma i-pointer ekhomba into ekhululiwe iphumela ekuphonsweni okuhlukile). Isibonelo, ukusebenzisa i-CHERIoT kukuvumela ukuthi usebenzise ukuhlola imingcele okuzenzakalelayo, ukulandelela impilo yonke yenkumbulo, kanye nokuqinisekisa ubuqotho besikhombi ezingxenyeni eziphatha idatha engathenjiwe ngaphandle kokudinga izinguquko zekhodi.

Le phrojekthi ihlanganisa ukucaciswa kwesakhiwo esinwetshiwe sesethi yemiyalo ye-CHERIoT, ukuqaliswa okuyisethenjwa kwe-32-bit RISC-V CPU esekela i-CHERIoT ISA, kanye nekhithi yamathuluzi eguquliwe ye-LLVM. Imidwebo ye-CPU yesibonelo kanye nezincazelo zebhulokhi yehadiwe ku-Verilog zisatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0. I-Ibex core evela kuphrojekthi ye-lowRISC isetshenziswe njengesisekelo se-CPU. Imodeli yekhodi ye-CHERIoT ISA ichazwa ngolimi lwe-Sail futhi ilayisensi ngaphansi kwelayisensi ye-BSD.

Ukwengeza, kuhlongozwa i-prototype yesistimu yokusebenza yesikhathi sangempela i-CHERIoT RTOS, enikeza amandla okuhlukanisa amagumbi ngisho nasezinhlelweni ezishumekiwe ezino-256 MB we-RAM. Ikhodi ye-CHERIoT RTOS ibhalwe nge-C++ futhi isakazwa ngaphansi kwelayisensi ye-MIT. Izingxenye eziyisisekelo ze-OS, njenge-bootloader, ishejuli kanye nesistimu yokusabalalisa inkumbulo, zakhiwe ngendlela yamakhompathimenti.

Ikhompathimenti ku-CHERIoT RTOS iyinhlanganisela ehlukile yekhodi neziguquguqukayo zomhlaba wonke ezifana nelabhulali eyabiwe, kodwa ngokungafani neyakamuva, ingashintsha isimo sayo (eguquguqukayo) futhi isebenze esimweni esihlukile sokuphepha. Ayikho ikhodi evela ngaphandle engadlulisa ukulawula kukhodi ekhombeni nasezintweni zokufinyelela, ngaphandle kokufinyelela izindawo zokungena ezichazwe ngokukhethekile nokusebenzisa izikhombi ezintweni eziphasiswe ngokucacile lapho ubiza enye indawo. Ubuqotho nokugcinwa kuyimfihlo kuqinisekisiwe ngekhodi nezinto zomhlaba wonke endaweni.

Source: opennet.ru

Engeza amazwana