Samhlaichean siostaman coimpiutair: simuladair làn-ùrlar eòlach agus neo-aithnichte deiseal agus lorgan

Anns an dàrna pàirt den artaigil mu dheidhinn simuladairean siostam coimpiutair, cumaidh mi a ’bruidhinn ann an cruth tòiseachaidh sìmplidh mu dheidhinn simuladairean coimpiutair, is e sin mun atharrais làn-ùrlar, a choinnicheas an neach-cleachdaidh cuibheasach as trice, a bharrachd air a’ ghleoc. -clock modail agus lorgan, a tha nas cumanta ann an cearcallan leasaiche.

Samhlaichean siostaman coimpiutair: simuladair làn-ùrlar eòlach agus neo-aithnichte deiseal agus lorgan

В a ’chiad phàirt Bhruidhinn mi mu dè a th ’ann an simuladairean san fharsaingeachd, a bharrachd air na h-ìrean atharrais. A-nis, stèidhichte air an eòlas sin, tha mi a ’moladh dàibheadh ​​​​beagan nas doimhne agus bruidhinn mu dheidhinn atharrais làn-ùrlar, mar a chruinnicheas tu lorgan, dè a nì thu leotha nas fhaide air adhart, a bharrachd air aithris microarchitectural cloc-air-cloc.

Samhlaiche àrd-ùrlar làn, no “Chan e gaisgeach a th’ ann an aonar san raon"

Ma tha thu airson sgrùdadh a dhèanamh air obrachadh aon inneal sònraichte, mar eisimpleir, cairt lìonra, no sgrìobhadh firmware no draibhear airson an inneal seo, faodar an leithid de inneal a shamhlachadh air leth. Ach, chan eil e gu math goireasach a bhith ga chleachdadh leotha fhèin bhon chòrr den bhun-structar. Gus an draibhear co-fhreagarrach a ruith, bidh feum agad air pròiseasar meadhanach, cuimhne, ruigsinneachd air bus dàta, msaa. A bharrachd air an sin, feumaidh an draibhear siostam obrachaidh (OS) agus stac lìonra gus obrachadh. A bharrachd air an sin, dh’ fhaodadh gum bi feum air gineadair pacaid air leth agus frithealaiche freagairt.

Bidh simuladair làn-ùrlar a’ cruthachadh àrainneachd airson a bhith a’ ruith stac bathar-bog iomlan, a tha a’ toirt a-steach a h-uile càil bhon BIOS agus bootloader chun OS fhèin agus na diofar fo-shiostaman aige, leithid an aon stac lìonra, draibhearan, agus tagraidhean ìre neach-cleachdaidh. Gus seo a dhèanamh, bidh e a’ cur an gnìomh modalan bathar-bog den mhòr-chuid de dh’ innealan coimpiutair: pròiseasar agus cuimhne, diosc, innealan cuir a-steach / toraidh (meur-chlàr, luchag, taisbeanadh), a bharrachd air an aon chairt lìonra.

Gu h-ìosal tha diagram bloca den x58 chipset bho Intel. Feumaidh simuladair coimpiutair làn-àrd-ùrlar air a’ chipset seo a’ mhòr-chuid de na h-innealan clàraichte a chuir an gnìomh, a’ toirt a-steach an fheadhainn taobh a-staigh an IOH (Input / Output Hub) agus ICH (Input / Output Controller Hub), nach eil air am mìneachadh gu mionaideach air an diagram bloc . Ged, mar a tha cleachdadh a’ sealltainn, chan eil mòran innealan ann nach eil air an cleachdadh leis a’ bhathar-bog a tha sinn a’ dol a ruith. Chan eil feum air modalan de dh'innealan mar sin a chruthachadh.

Samhlaichean siostaman coimpiutair: simuladair làn-ùrlar eòlach agus neo-aithnichte deiseal agus lorgan

Mar as trice, bidh simuladairean làn-ùrlar air an cur an gnìomh aig ìre stiùiridh pròiseasar (ISA, faic gu h-ìosal). artaigil roimhe). Leigidh seo leat an simuladair fhèin a chruthachadh gu ìre mhath luath agus saor. Tha ìre ISA math cuideachd leis gu bheil e fhathast seasmhach, eu-coltach, mar eisimpleir, an ìre API/ABI, a bhios ag atharrachadh nas trice. A bharrachd air an sin, tha buileachadh aig ìre stiùiridh a ’toirt cothrom dhut bathar-bog binary neo-atharraichte a ruith, is e sin, ruith còd a chaidh a chuir ri chèile mar-thà gun atharrachaidhean sam bith, dìreach mar a tha e air a chleachdadh air fìor bhathar-cruaidh. Ann am faclan eile, faodaidh tu leth-bhreac (“dump”) den chlàr cruaidh agad a dhèanamh, a shònrachadh mar ìomhaigh airson modail ann an simuladair làn-ùrlar, agus voila! - Tha an OS agus prògraman eile air an luchdachadh san t-simuladair gun ghnìomhan a bharrachd.

Coileanadh simulator

Samhlaichean siostaman coimpiutair: simuladair làn-ùrlar eòlach agus neo-aithnichte deiseal agus lorgan

Mar a chaidh a ràdh dìreach gu h-àrd, tha am pròiseas atharrais air an t-siostam gu lèir, is e sin, a h-uile inneal aige, gu math slaodach. Ma tha thu cuideachd a 'cur an gnìomh seo uile aig ìre gu math mionaideach, mar eisimpleir, microarchitectural no loidsigeach, an uair sin a chur gu bàs a' fàs gu math slaodach. Ach tha an ìre stiùiridh na roghainn iomchaidh agus leigidh e leis an OS agus na prògraman a chuir an gnìomh aig astaran gu leòr airson an neach-cleachdaidh a bhith ag eadar-obrachadh leotha gu comhfhurtail.

An seo bhiodh e iomchaidh suathadh air cuspair coileanadh simuladair. Mar as trice tha e air a thomhas ann an IPS (stiùireadh gach diog), nas mionaidiche ann am MIPS (milleanan IPS), is e sin, an àireamh de stiùireadh pròiseasar a chuir an simuladair gu bàs ann an aon diog. Aig an aon àm, tha astar an atharrais cuideachd an urra ri coileanadh an t-siostam air a bheil an atharrais fhèin a’ ruith. Mar sin, is dòcha gum bi e nas ceart bruidhinn mu “slaodach” an simuladair an taca ris an t-siostam tùsail.

Tha coileanadh math aig na simuladairean làn-ùrlar as cumanta air a’ mhargaidh, leithid QEMU, VirtualBox no VmWare Workstation. Is dòcha nach bi e eadhon follaiseach don neach-cleachdaidh gu bheil obair a’ dol air adhart san t-simuladair. Bidh seo a’ tachairt mar thoradh air na comasan virtualization sònraichte a chaidh a chuir an gnìomh ann am pròiseasairean, algorithms eadar-theangachaidh binary agus rudan inntinneach eile. Tha seo uile na chuspair airson artaigil air leth, ach ann an ùine ghoirid, tha virtualization na fheart bathar-cruaidh de phròiseasan an latha an-diugh a leigeas le simuladairean gun a bhith ag atharrais air stiùiridhean, ach an cur gu bàs gu dìreach gu pròiseasar fìor, ma tha, gu dearbh, ailtireachd tha an simuladair agus am pròiseasar coltach. Is e eadar-theangachadh binary an eadar-theangachadh de chòd inneal aoighean gu còd aoigheachd agus coileanadh às deidh sin air pròiseasar fìor. Mar thoradh air an sin, chan eil an atharrais ach beagan nas slaodaiche, 5-10 tursan, agus gu tric bidh e eadhon a ’ruith aig an aon astar ris an fhìor shiostam. Ged a tha seo fo bhuaidh mòran fhactaran. Mar eisimpleir, ma tha sinn airson atharrais a dhèanamh air siostam le grunn dhusan pròiseasairean, bidh an astar a ’dol sìos sa bhad grunn dhusan uair. Air an làimh eile, bidh simuladairean mar Simics anns na dreachan as ùire a ’toirt taic do bhathar-cruaidh aoigheachd ioma-phròiseasar agus gu h-èifeachdach a’ co-thaobhadh nan coraichean samhlachail ri coraichean fìor phròiseasar.

Ma tha sinn a 'bruidhinn mu dheidhinn an t-astar microarchitectural atharrais, mar as trice tha grunn òrdughan meud, mu 1000-10000 tursan nas slaodaiche na coileanadh air coimpiutair àbhaisteach, gun atharrais. Agus tha buileachadh aig ìre eileamaidean loidsigeach nas slaodaiche le grunn òrdughan meudachd. Mar sin, tha FPGA air a chleachdadh mar emuladair aig an ìre seo, a dh’ fhaodadh coileanadh àrdachadh gu mòr.

Tha an graf gu h-ìosal a’ sealltainn eisimeileachd tuairmseach air astar atharrais air mion-fhiosrachadh a’ mhodail.

Samhlaichean siostaman coimpiutair: simuladair làn-ùrlar eòlach agus neo-aithnichte deiseal agus lorgan

Samhlachadh beat-by-beat

A dh'aindeoin an astar cur gu bàs ìosal, tha simuladairean microarchitectural gu math cumanta. Tha feum air atharrais air na blocaichean a-staigh den phròiseasar gus atharrais gu ceart air àm cur gu bàs gach stiùiridh. Faodaidh mì-thuigse èirigh an seo - às deidh a h-uile càil, bhiodh e coltach, carson nach dèan thu dìreach an ùine cur gu bàs airson gach stiùireadh a phrògramadh. Ach bidh an leithid de simuladair gu math mearachdach, oir faodaidh ùine cur gu bàs an aon stiùireadh a bhith eadar-dhealaichte bho ghairm gu gairm.

Is e an eisimpleir as sìmplidh stiùireadh ruigsinneachd cuimhne. Ma tha an t-àite cuimhne a chaidh iarraidh ri fhaighinn san tasgadan, bidh an ùine cur gu bàs cho beag. Mura h-eil am fiosrachadh seo san tasgadan (“cache miss”), àrdaichidh seo gu mòr an ùine cur an gnìomh an stiùiridh. Mar sin, tha feum air modal tasgadan airson atharrais ceart. Ach, chan eil a’ chùis cuingealaichte ris a’ mhodail tasgadan. Cha bhith am pròiseasar dìreach a’ feitheamh gus an tèid dàta fhaighinn air ais bhon chuimhne nuair nach eil e san tasgadan. An àite sin, tòisichidh e a 'cur an gnìomh an ath stiùireadh, a' taghadh an fheadhainn nach eil an urra ri toradh leughadh bho chuimhne. Is e seo an coileanadh “a-mach à òrdugh” ris an canar (OOO, coileanadh taobh a-muigh òrdugh), a tha riatanach gus ùine leisg a’ phròiseasar a lughdachadh. Cuidichidh modaladh nam blocaichean pròiseasar co-fhreagarrach seo a thoirt fa-near nuair a thathar a’ tomhas ùine cur an gnìomh an stiùiridh. Am measg an stiùiridh seo, air a chuir gu bàs fhad ‘s a thathar a’ feitheamh ri toradh leughaidh bho chuimhne, faodaidh gnìomhachd leum gun chumhachan tachairt. Mura h-eil fios air toradh an t-suidheachaidh an-dràsta, an uairsin a-rithist chan eil am pròiseasar a 'stad air a chur gu bàs, ach a' dèanamh "tomhas", a 'coileanadh a' mheur iomchaidh agus a 'leantainn air adhart le bhith a' cur an gnìomh stiùireadh bhon phuing gluasaid. Feumar a leithid de bhloc, ris an canar ro-innse meur, a chuir an gnìomh cuideachd anns an simuladair microarchitectural.

Tha an dealbh gu h-ìosal a 'sealltainn na prìomh bhlocaichean den phròiseasar, chan eil feum air fios a bhith agad, tha e air a shealltainn a-mhàin gus sealltainn cho iom-fhillte' sa tha buileachadh microarchitectural.

Samhlaichean siostaman coimpiutair: simuladair làn-ùrlar eòlach agus neo-aithnichte deiseal agus lorgan

Tha obrachadh nam blocaichean sin uile ann am fìor phròiseasar air a shioncronadh le comharran gleoc sònraichte, agus tha an aon rud a’ tachairt anns a ’mhodail. Canar cearcall neo-mhearachdach ri leithid de simuladair microarchitectural. Is e am prìomh adhbhar aige ro-innse ceart a dhèanamh air coileanadh a’ phròiseasar a thathar a’ leasachadh agus/no obrachadh a-mach ùine cur an gnìomh prògram sònraichte, mar eisimpleir, slat-tomhais. Ma tha na luachan nas ìsle na tha riatanach, bidh e riatanach na h-algorithms agus na blocaichean pròiseasar atharrachadh no am prògram a bharrachadh.

Mar a chithear gu h-àrd, tha atharrais cloc-air-cloc gu math slaodach, agus mar sin chan eil e air a chleachdadh ach nuair a bhios tu a ’sgrùdadh amannan sònraichte de ghnìomhachd prògram, far a bheil feum air faighinn a-mach fìor astar coileanadh a’ phrògraim agus measadh a dhèanamh air coileanadh an inneil san àm ri teachd. tha prototype ga shamhlachadh.

Anns a ’chùis seo, thathas a’ cleachdadh simuladair gnìomh gus atharrais air an ùine ruith a tha air fhàgail den phrògram. Ciamar a tha am measgachadh seo de chleachdadh a’ tachairt ann an da-rìribh? An toiseach, thèid an simuladair gnìomh a chuir air bhog, air am bi an OS agus a h-uile dad a tha riatanach gus am prògram fo sgrùdadh a ruith air an luchdachadh. Às deidh na h-uile, chan eil ùidh againn anns an OS fhèin, no anns na ciad ìrean de bhith a 'cur air bhog a' phrògraim, a rèiteachadh, msaa. Ach, chan urrainn dhuinn cuideachd na pàirtean sin a sheachnadh agus gluasad air adhart sa bhad gu bhith a’ cur an gnìomh am prògram bhon mheadhan. Mar sin, tha na ceumannan tòiseachaidh sin uile air an ruith air simuladair gnìomh. Às deidh don phrògram a bhith air a chuir gu bàs chun mhionaid anns a bheil ùidh againn, tha dà roghainn comasach. Faodaidh tu modal cloc-air-baidhsagal a chuir an àite a ’mhodail agus leantainn air adhart leis a’ chur gu bàs. Canar atharrais air a stiùireadh gu bàs ris a’ mhodh atharrais a bhios a’ cleachdadh còd so-ghnìomhaichte (is e sin, faidhlichean prògram air an cur ri chèile gu cunbhalach). Is e seo an roghainn atharrais as cumanta. Tha dòigh-obrach eile comasach cuideachd - atharrais air a stiùireadh le lorg.

Samhlachadh stèidhichte air lorg

Tha e air a dhèanamh suas de dhà cheum. A’ cleachdadh simuladair gnìomh no air siostam fìor, tha log de ghnìomhan prògram air a chruinneachadh agus air a sgrìobhadh gu faidhle. Canar lorg ris an log seo. A rèir na thathar a’ sgrùdadh, faodaidh an lorg a bhith a’ toirt a-steach stiùireadh so-ghnìomhaichte, seòlaidhean cuimhne, àireamhan puirt, agus fiosrachadh brisidh.

Is e an ath cheum an lorg “a chluich”, nuair a leughas an simuladair cloc-air-cloc an lorg agus a chuireas e an gnìomh a h-uile stiùireadh a tha sgrìobhte ann. Aig an deireadh, gheibh sinn an ùine cur gu bàs am pìos seo den phrògram, a bharrachd air diofar fheartan den phròiseas seo, mar eisimpleir, an àireamh sa cheud de bhuillean san tasgadan.

Is e feart cudromach de bhith ag obair le lorgan cinnt, is e sin, le bhith a’ ruith an atharrais san dòigh a chaidh a mhìneachadh gu h-àrd, a-rithist is a-rithist bidh sinn ag ath-riochdachadh an aon sreath de ghnìomhan. Tha seo ga dhèanamh comasach, le bhith ag atharrachadh paramadairean modail (meudan tasgadan, bufair agus ciudha) agus a’ cleachdadh diofar algoirmean a-staigh no gan gleusadh, sgrùdadh a dhèanamh air mar a tha paramadair sònraichte a’ toirt buaidh air coileanadh siostam agus dè an roghainn a bheir na toraidhean as fheàrr. Faodar seo uile a dhèanamh le modal inneal prototype mus cruthaich thu fìor prototype bathar-cruaidh.

Tha iom-fhillteachd an dòigh-obrach seo na laighe anns an fheum air an tagradh a ruith an toiseach agus an lorg a chruinneachadh, a bharrachd air meud mòr an fhaidhle lorg. Tha na buannachdan a 'toirt a-steach gu bheil e gu leòr airson a bhith a' dèanamh atharrais air a 'phàirt den inneal no an àrd-ùrlar inntinneach a-mhàin, agus mar as trice bidh feum air modail iomlan airson atharrais le bhith a' coileanadh.

Mar sin, san artaigil seo thug sinn sùil air feartan atharrais làn-ùrlar, bhruidhinn sinn mu astar buileachadh aig diofar ìrean, atharrais gleoc air baidhsagal agus lorgan. Anns an ath artaigil bheir mi cunntas air na prìomh shuidheachaidhean airson a bhith a ’cleachdadh simuladairean, an dà chuid airson adhbharan pearsanta agus bho shealladh leasachaidh ann an companaidhean mòra.

Source: www.habr.com

Cuir beachd ann