Simulators ee nidaamyada kombuyuutarka: jileeyaha madal buuxa ee la yaqaan oo saacada u jeeda iyo raad aan la garanayn

Qaybta labaad ee maqaalka ku saabsan jilayaasha nidaamka kombuyuutarka, waxaan sii wadi doonaa inaan uga hadlo qaab hordhac ah oo fudud oo ku saabsan jilayaasha kombuyuutarrada, kuwaas oo ku saabsan jilitaanka guud ee buuxa, kaas oo celceliska isticmaalaha inta badan la kulmo, iyo sidoo kale ku saabsan saacad-by Qaabka saacada iyo raadadka, kuwaas oo ku badan goobaha horumariyaha.

Simulators ee nidaamyada kombuyuutarka: jileeyaha madal buuxa ee la yaqaan oo saacada u jeeda iyo raad aan la garanayn

Π’ qaybta koowaad Waxaan ka hadlay waxa simulators yihiin guud ahaan, iyo sidoo kale ku saabsan heerarka jilitaanka. Hadda, iyada oo ku saleysan aqoontaas, waxaan soo jeedinayaa in aan hoos u yaraado oo aan ka hadlo jilitaanka buuxa ee madal, sida loo ururiyo raadadka, waxa la sameeyo iyaga ka dib, iyo sidoo kale ku dayashada microarchitectural saacad-saac-saac.

Jileeyaha madal buuxa, ama "Kaligiis garoonka dhexdiisa maaha dagaalyahan"

Haddii aad rabto inaad barato hawlgalka hal qalab oo gaar ah, tusaale ahaan, kaarka shabakadda, ama qor firmware ama darawalka qalabkan, markaa qalabkan oo kale ayaa si gaar ah loo jili karaa. Si kastaba ha ahaatee, isticmaalka si gooni ah oo ka mid ah kaabayaasha intiisa kale maaha mid aad u habboon. Si aad u socodsiiso darawalka u dhigma, waxaad u baahan doontaa processor-ka dhexe, xusuusta, helitaanka baska xogta, iwm. Intaa waxaa dheer, darawalku wuxuu u baahan yahay nidaamka hawlgalka (OS) iyo xirmo shabakad si uu u shaqeeyo. Intaa waxaa dheer, koronto-dhaliye gaar ah iyo server-ka jawaabta ayaa laga yaabaa in loo baahdo.

Simulator-ka buuxa wuxuu abuuraa jawi lagu socodsiiyo xirmo softiweer ah oo dhameystiran, oo ay ku jiraan wax kasta oo ka socda BIOS iyo bootloader ilaa OS laftiisa iyo nidaamyada hoosaadyada kala duwan, sida xirmooyinka isku midka ah, darawallada, iyo codsiyada heerka isticmaale. Si tan loo sameeyo, waxay fulisaa moodooyinka softiweerka ah ee aaladaha kumbuyuutarrada badankood: processor-ka iyo xusuusta, diskka, aaladaha wax-soo-saarka (keyboard, mouse, display), iyo sidoo kale kaadhka shabakadda.

Hoos waxaa ku yaal jaantuska xannibaadda x58 chipset ee Intel. Simulator-ka buuxa ee kombiyuutarka ee chipset-kan wuxuu u baahan yahay hirgelinta inta badan aaladaha liiska ku jira, oo ay ku jiraan kuwa gudaha IOH (Input/Output Hub) iyo ICH (Input/Output Controller Hub), kuwaas oo aan si faahfaahsan loogu muujin jaantuska block . In kasta oo, sida dhaqanku muujinayo, ma jiraan aalado badan oo aan adeegsan softiweerka aan ku shaqeyn doonno. Moodooyinka qalabkan oo kale uma baahna in la abuuro.

Simulators ee nidaamyada kombuyuutarka: jileeyaha madal buuxa ee la yaqaan oo saacada u jeeda iyo raad aan la garanayn

Inta badan, mishiinada simulatorada buuxa ayaa lagu hirgeliyaa heerka tilmaamaha processor-ka (ISA, hoos eeg). maqaal hore). Tani waxay kuu ogolaaneysaa inaad abuurto jileeyaha laftiisa si dhakhso ah oo jaban. Heerarka ISA sidoo kale waa wanaagsan yahay sababtoo ah waxay sii ahaanaysaa wax ka badan ama ka yar si joogto ah, si ka duwan, tusaale ahaan, heerka API/ABI, kaas oo isbeddela marar badan. Intaa waxaa dheer, hirgelinta heerka tilmaamaha waxay kuu ogolaaneysaa inaad socodsiiso waxa loogu yeero software binary aan la beddelin, taas oo ah, u socodsii koodhka horay loo soo ururiyey iyada oo aan wax isbeddel ah, sida saxda ah loo isticmaalo qalabka dhabta ah. Si kale haddii loo dhigo, waxaad samayn kartaa koobi (β€œku daadinta”) dariiqaaga adag, waxaad u qeexdaa sida sawir moodeel ku jira jilitaanka madal buuxa, iyo voila! - OS-ka iyo barnaamijyada kale ayaa lagu shubaa jileeyaha iyada oo aan wax ficil ah oo dheeri ah la helin.

Waxqabadka jilitaanka

Simulators ee nidaamyada kombuyuutarka: jileeyaha madal buuxa ee la yaqaan oo saacada u jeeda iyo raad aan la garanayn

Sida kor ku xusan, habka jilitaanka nidaamka oo dhan, taas oo ah, dhammaan qalabkiisa, waa hawl gaabis ah. Haddii aad sidoo kale waxaas oo dhan ku fuliso heer aad u faahfaahsan, tusaale ahaan, microarchitectural ama macquul ah, markaas fulinta waxay noqon doontaa mid aad u gaabis ah. Laakiin heerka wax-baridku waa doorashada ku habboon oo u oggolaanaysa OS iyo barnaamijyadu inay ku fuliyaan xawaare ku filan isticmaaluhu inuu si raaxo leh ula macaamilo.

Halkan waxa ku habboonaan lahayd in la taabto mawduuca waxqabadka jilitaanka. Inta badan waxaa lagu cabbiraa IPS (tilmaanta halkii ilbiriqsi), si sax ah MIPS (malaayiin IPS), taas oo ah, tirada tilmaamaha processor-ku uu fuliyo hal ilbiriqsi gudaheed. Isla mar ahaantaana, xawaaraha jilitaanka ayaa sidoo kale ku xiran waxqabadka nidaamka uu jilitaanka laftiisa ku socdo. Sidaa darteed, waxaa laga yaabaa inay sax tahay in laga hadlo "gaabista" jileeyaha marka la barbar dhigo nidaamka asalka ah.

Simulators-ka buuxa ee ugu caansan suuqa, sida QEMU, VirtualBox ama VmWare Workstation, waxay leeyihiin waxqabad wanaagsan. Waxaa laga yaabaa in aysan xitaa dareemin isticmaaluhu in shaqada ay ka socoto simulator-ka. Tani waxay ku dhacdaa iyada oo ay ugu mahadcelinayso awoodaha farsamada ee gaarka ah ee lagu hirgeliyay soo-saareyaasha, algorithms-ka turjumaadda binary iyo waxyaabo kale oo xiiso leh. Tani waa mawduuc gaar ah oo loogu talagalay maqaal gaar ah, laakiin marka la soo koobo, Virtualization waa qalab qalab ah oo ka mid ah soo-saareyaasha casriga ah ee u oggolaanaya jilayaasha inaysan ku ekaan tilmaamaha, laakiin si toos ah ugu diraan si ay u fuliyaan processor-ka dhabta ah, haddii, dabcan, naqshadaha simulator-ka iyo processor-ku waa isku mid. Turjumaada binary waa tarjumaada koodhka mashiinka martida koodka martida loo yahay iyo fulinta ku xigta ee processor-ka dhabta ah. Natiijo ahaan, jilitaanka ayaa kaliya waxyar gaabis ah, 5-10 jeer, iyo inta badan xitaa waxay ku socotaa xawaare la mid ah nidaamka dhabta ah. Inkasta oo arrintan ay saamayn ku leeyihiin arrimo badan. Tusaale ahaan, haddii aan rabno in aan ku ekayno nidaam leh dhowr darsin processor, markaas xawaaruhu wuxuu isla markiiba hoos u dhacayaa dhowr iyo toban jeer. Dhanka kale, jilayaasha sida Simics ee noocyadii ugu dambeeyay waxay taageeraan qalabyada martigeliyaha badan ee processor-ka waxayna si wax ku ool ah u barbar dhigaan koojyada la sawiray ee dhexda processor-ka dhabta ah.

Haddii aan ka hadalno xawaaraha jilitaanka microarchitectural, ka dibna inta badan waa amarro dhowr ah oo cabbir ah, oo ku saabsan 1000-10000 jeer ka hooseeya fulinta kombuyuutarka caadiga ah, iyada oo aan la isticmaalin. Iyo hirgelinta heerka walxaha macquulka ah ayaa ka gaabiya dhowr amar oo waaweyn. Sidaa darteed, FPGA waxaa loo istcimaalayaa ku-dabayle ahaan heerkan, kaas oo si weyn u kordhin kara waxqabadka.

Jaantuska hoose wuxuu muujinayaa ku tiirsanaanta xawaaraha jilitaanka ee tafaasiisha moodeelka.

Simulators ee nidaamyada kombuyuutarka: jileeyaha madal buuxa ee la yaqaan oo saacada u jeeda iyo raad aan la garanayn

Jilidda garaaca garaaca

In kasta oo xawaaraha fulinta hooseeyaa uu yar yahay, jilayaasha farshaxanimada yaryar ayaa aad u badan. Jilidda baloogyada gudaha ee processor-ku waa lagama maarmaan si si sax ah loogu ekaysiiyo waqtiga fulinta tilmaam kasta. Faham la'aan ayaa laga yaabaa inay halkan ka soo baxdo - ka dib oo dhan, waxay u ekaan doontaa, sababta aan si fudud u qorsheyn wakhtiga fulinta ee tilmaam kasta. Laakiin jileeyaha noocan oo kale ah wuxuu noqon doonaa mid aad u khaldan, maadaama wakhtiga fulinta isla tilmaamaha laga yaabo inuu ka duwan yahay wicitaanka wacitaanka.

Tusaalaha ugu fudud waa tilmaamaha gelitaanka xusuusta. Haddii goobta xusuusta ee la codsaday ay ku jirto khasnadda, markaas wakhtiga fulinta ayaa noqon doona mid aad u yar. Haddii macluumaadkani aanu ku jirin kaydka ("cache miss"), markaa tani waxay si weyn u kordhin doontaa wakhtiga fulinta ee tilmaamaha. Sidaa darteed, qaabka kaydka ayaa looga baahan yahay jilitaanka saxda ah. Si kastaba ha ahaatee, arrintu kuma koobna qaabka kaydka. Processor-ku si fudud uma sugi doono in xogta laga soo saaro xusuusta marka aanay ku jirin kaydka. Taa beddelkeeda, waxay bilaabi doontaa fulinta tilmaamaha soo socda, iyadoo dooranaysa kuwa aan ku xidhnayn natiijada akhriska ee xusuusta. Tani waa waxa loogu yeero fulinta "kabaxsan" (OOO, ka baxsan amarka), lagama maarmaanka u ah in la yareeyo processor-ka wakhtiga shaqo la'aanta ah. Naqshadeynta blocks processor-ka u dhigma waxay kaa caawin doontaa in lagu xisaabtamo waxaas oo dhan marka la xisaabinayo waqtiga fulinta tilmaamaha. Waxaa ka mid ah tilmaamahan, oo la fuliyay iyadoo natiijada akhrinta xusuusta la sugayo, qalliin bood ah oo shuruudaysan ayaa dhici karta. Haddii natiijada xaaladdu aan la garanayn hadda, markaa mar kale processor-ku ma joojinayo fulinta, laakiin wuxuu sameeyaa "malo", wuxuu sameeyaa laanta ku habboon oo uu sii wado inuu si firfircoon u fuliyo tilmaamaha laga bilaabo barta kala-guurka. Qeybtan oo kale, oo loo yaqaan saadaasha laanta, waa in sidoo kale lagu fuliyaa jileeyaha yar yar.

Sawirka hoose wuxuu muujinayaa blocks ugu weyn ee processor-ka, ma aha lagama maarmaan in la ogaado, waxaa lagu muujiyay oo kaliya si ay u muujiyaan kakanaanta hirgelinta microarchitectural.

Simulators ee nidaamyada kombuyuutarka: jileeyaha madal buuxa ee la yaqaan oo saacada u jeeda iyo raad aan la garanayn

Hawlgalka dhammaan baloogyadan ku jira processor-ka dhabta ah waxaa isku dhejinaya calaamadaha saacadaha gaarka ah, sidaas oo kale ayaa ku dhacda qaabka. Simulator-ka yar-yar ee noocan oo kale ah ayaa loo yaqaan wareegga saxda ah. Ujeeddadeeda ugu weyn waa in si sax ah loo saadaaliyo waxqabadka processor-ka la soo saarayo iyo/ama xisaabinta waqtiga fulinta barnaamij gaar ah, tusaale ahaan, bar-tilmaameedka. Haddii qiyamku ay ka hooseeyaan sidii loo baahnaa, markaa waxay noqon doontaa lagama maarmaan in la beddelo algorithms iyo blocks processor ama kor u qaadida barnaamijka.

Sida kor ku xusan, jilitaanka saacad-saac-saac waa mid aad u gaabis ah, sidaas darteed waxaa la adeegsadaa oo keliya marka la baranayo daqiiqado gaar ah oo ka mid ah hawlgalka barnaamijka, halkaas oo ay lagama maarmaan tahay in la ogaado xawaaraha dhabta ah ee fulinta barnaamijka iyo in la qiimeeyo waxqabadka mustaqbalka ee qalabka prototype waa la sawiray.

Xaaladdan oo kale, jileeyaha shaqaynaysa ayaa loo adeegsadaa si loogu ekaysiiyo wakhtiga haray ee barnaamijka. Sidee isku darka isticmaalkan u dhacaa xaqiiqda? Marka hore, simulator-ka shaqeynaya ayaa la bilaabay, kaas oo OS-ka iyo wax kasta oo lagama maarmaanka u ah in lagu socodsiiyo barnaamijka daraasadda lagu rakibay. Ka dib oo dhan, ma xiisayneyno OS laftiisa, ama marxaladaha bilowga ah ee bilaabista barnaamijka, qaabeynta, iwm. Si kastaba ha ahaatee, sidoo kale ma dhaafi karno qaybahan oo isla markiiba u gudubno fulinta barnaamijka dhexda. Sidaa darteed, dhammaan tillaabooyinkan hordhaca ah waxaa lagu maamulaa simulator shaqaynaya. Ka dib markii barnaamijka la fuliyay ilaa wakhtiga xiisaha noo, laba ikhtiyaar ayaa suurtagal ah. Waxaad ku beddeli kartaa moodalka qaab saacad-wareeg ah oo sii wad fulinta. Habka jilitaanka ee adeegsada kood la fulin karo (taas oo ah, faylalka barnaamijka caadiga ah ee la soo ururiyey) waxaa loo yaqaannaa jilitaanka fulinta. Tani waa ikhtiyaarka jilitaanka ugu caansan. Hab kale ayaa sidoo kale suurtagal ah - raad raac jilitaanka.

Jilid ku salaysan raad-raac

Waxay ka kooban tahay laba tallaabo. Isticmaalka jilbaha shaqaynaaya ama nidaamka dhabta ah, log of falalka barnaamijka ayaa la ururiyaa oo loo qoraa fayl. Loggaan waxaa lagu magacaabaa raad. Iyadoo ku xiran waxa la baarayo, raadraaca waxaa ku jiri kara tilmaamo la fulin karo, ciwaannada xusuusta, nambarada dekedda, iyo macluumaadka joojinta.

Talaabada xigta waa in la "ciyaaro" raadadka, marka jileeyaha saacadba-saac akhriyo raadadka oo uu fuliyo dhammaan tilmaamaha ku qoran. Dhamaadka, waxaan helnaa waqtiga fulinta ee qaybtan barnaamijka, iyo sidoo kale sifooyinka kala duwan ee habkan, tusaale ahaan, boqolkiiba hits ee kaydka.

Tilmaamaha muhiimka ah ee la shaqeynta raadadka waa go'aaminta, taas oo ah, adoo ku socodsiinaya jilitaanka habka kor lagu sharaxay, marar badan waxaan soo saareynaa isku xigxiga ficilada. Tani waxay suurtogal ka dhigaysaa in la beddelo cabbirrada moodeelka (cache, buffer iyo size safka) iyo iyadoo la adeegsanayo algorithms gudaha ah oo kala duwan ama la hagaajinayo, si loo barto sida halbeeg gaar ah u saameeya waxqabadka nidaamka iyo ikhtiyaarka bixiya natiijooyinka ugu fiican. Waxaas oo dhan waxaa lagu samayn karaa qaabka aaladaha prototype ka hor inta aan la samayn prototype hardware dhabta ah.

Kakanaanta habkani waxay ku jirtaa baahida loo qabo in marka hore la wado codsiga oo la ururiyo raadadka, iyo sidoo kale xajmiga weyn ee faylka raadraaca. Faa'iidooyinka waxaa ka mid ah xaqiiqda ah in ay ku filan tahay in lagu sawiro oo kaliya qaybta qalabka ama goobta xiisaha, halka jilitaanka fulinta sida caadiga ah u baahan yahay nooc dhamaystiran.

Sidaa darteed, maqaalkan waxaan eegnay sifooyinka jilitaanka-madax buuxa, waxaan ka hadalnay xawaaraha fulinta heerarka kala duwan, jilitaanka saacad-wareegga iyo raadadka. Maqaalka soo socda waxaan ku tilmaami doonaa xaaladaha ugu muhiimsan ee isticmaalka jilitaanka, labadaba ujeedooyinka shakhsi ahaaneed iyo marka laga eego aragtida horumarinta shirkadaha waaweyn.

Source: www.habr.com

Add a comment