Ma simulators amakompyuta apakompyuta: choyimira chodziwika bwino cha nsanja zonse komanso osadziwika motsata mawotchi ndi njira

Mu gawo lachiwiri la nkhani yokhudzana ndi makina oyeserera apakompyuta, ndipitiliza kuyankhula m'mawu osavuta oyambira oyeserera apakompyuta, omwe ndi ofananira ndi nsanja zonse, zomwe wogwiritsa ntchito wamba nthawi zambiri amakumana nazo, komanso za wotchiyo. -chitsanzo cha wotchi ndi zotsatizana, zomwe ndizofala kwambiri pamabwalo omanga.

Ma simulators amakompyuta apakompyuta: choyimira chodziwika bwino cha nsanja zonse komanso osadziwika motsata mawotchi ndi njira

Π’ gawo loyamba Ndinalankhula za zomwe simulators ali ambiri, komanso milingo kayeseleledwe. Tsopano, kutengera chidziwitso chimenecho, ndikupangira kuti ndidumphire mozama pang'ono ndikulankhula za kayeseleledwe kathunthu, momwe mungasonkhanitsire zotsalira, choti muchite nazo pambuyo pake, komanso kutsanzira koloko ndi koloko.

pulatifomu yoyeserera yathunthu, kapena "Yekha m'munda si wankhondo"

Ngati mukufuna kuphunzira kugwiritsa ntchito chipangizo china, mwachitsanzo, khadi la network, kapena lembani firmware kapena dalaivala wa chipangizochi, ndiye kuti chipangizocho chikhoza kutsatiridwa mosiyana. Komabe, kuzigwiritsa ntchito podzipatula kuchokera kuzinthu zina zonse sizothandiza kwambiri. Kuti muyendetse dalaivala wofananira, mudzafunika purosesa yapakati, kukumbukira, kupeza basi ya data, ndi zina. Kuphatikiza apo, dalaivala amafunikira makina ogwiritsira ntchito (OS) ndi stack network kuti agwire ntchito. Kuphatikiza apo, jenereta ya paketi yosiyana ndi seva yoyankha ingafunike.

Makina oyeserera amtundu wathunthu amapanga malo ogwiritsira ntchito pulogalamu yathunthu, yomwe imaphatikizapo chilichonse kuchokera ku BIOS ndi bootloader kupita ku OS yokha ndi ma subsystem ake osiyanasiyana, monga ma network omwewo, madalaivala, ndi mapulogalamu amtundu wa ogwiritsa ntchito. Kuti izi zitheke, imagwiritsa ntchito mapulogalamu a mapulogalamu a makompyuta ambiri: purosesa ndi kukumbukira, disk, zolowetsa / zotulutsa (kiyibodi, mbewa, kuwonetsera), komanso khadi la intaneti lomwelo.

Pansipa pali chithunzi cha block x58 chipset kuchokera ku Intel. Makina oyeserera apakompyuta amtundu wathunthu pa chipsetchi amafunikira kukhazikitsidwa kwa zida zambiri zomwe zandandalikidwa, kuphatikiza zomwe zili mkati mwa IOH (Input/Output Hub) ndi ICH (Input/Output Controller Hub), zomwe sizinawonetsedwe mwatsatanetsatane pa block diagram. . Ngakhale, monga momwe zimasonyezera, palibe zipangizo zambiri zomwe sizigwiritsidwa ntchito ndi mapulogalamu omwe tidzayendetsa. Zitsanzo za zipangizo zoterezi siziyenera kupangidwa.

Ma simulators amakompyuta apakompyuta: choyimira chodziwika bwino cha nsanja zonse komanso osadziwika motsata mawotchi ndi njira

Nthawi zambiri, zoyeserera zamapulatifomu athunthu zimakhazikitsidwa pamlingo wophunzitsira purosesa (ISA, onani pansipa). nkhani yapita). Izi zimakupatsani mwayi wopanga simulator yokha mwachangu komanso motsika mtengo. Mulingo wa ISA ndi wabwino chifukwa umakhalabe wocheperako, mosiyana, mwachitsanzo, mulingo wa API/ABI, womwe umasintha nthawi zambiri. Kuphatikiza apo, kukhazikitsa pamlingo wa malangizo kumakupatsani mwayi wothamangitsa otchedwa unmodified binary software, ndiye kuti, kuthamanga kale code popanda kusintha, chimodzimodzi monga momwe amagwiritsidwira ntchito pa hardware yeniyeni. Mwa kuyankhula kwina, mukhoza kupanga kopi ("kutaya") ya hard drive yanu, tchulani ngati chithunzi cha chitsanzo mu simulator yodzaza nsanja, ndi voila! - OS ndi mapulogalamu ena amadzazidwa mu simulator popanda zina zowonjezera.

Kuchita kwa simulator

Ma simulators amakompyuta apakompyuta: choyimira chodziwika bwino cha nsanja zonse komanso osadziwika motsata mawotchi ndi njira

Monga tafotokozera pamwambapa, njira yofanizira dongosolo lonse, ndiye kuti, zida zake zonse, ndi ntchito yocheperako. Ngati mugwiritsanso ntchito zonsezi mwatsatanetsatane, mwachitsanzo, microarchitectural kapena zomveka, ndiye kuti kuphedwa kumakhala kochedwa kwambiri. Koma mulingo wamalangizo ndi chisankho choyenera ndipo umalola OS ndi mapulogalamu kuti azichita pa liwiro lokwanira kuti wogwiritsa ntchito azilumikizana nawo bwino.

Apa zingakhale zoyenera kukhudza mutu wa machitidwe a simulator. Nthawi zambiri amayezedwa mu IPS (malangizo pa sekondi imodzi), ndendende mu MIPS (mamiliyoni a IPS), ndiko kuti, kuchuluka kwa malangizo a purosesa opangidwa ndi simulator mu sekondi imodzi. Panthawi imodzimodziyo, liwiro la kufananitsa kumadaliranso momwe machitidwe amachitira momwe kuwonetserako kumayendera. Choncho, zingakhale zolondola kunena za "kuchepa" kwa simulator poyerekeza ndi dongosolo loyambirira.

Ma simulators omwe amapezeka kwambiri pamsika, monga QEMU, VirtualBox kapena VmWare Workstation, amachita bwino. Mwina sizingawonekere kwa wogwiritsa ntchito kuti ntchito ikuchitika mu simulator. Izi zimachitika chifukwa cha kuthekera kwapadera kokhazikitsidwa ndi mapurosesa, ma aligorivimu omasulira bayinare ndi zinthu zina zosangalatsa. Zonsezi ndi mutu wa nkhani yosiyana, koma mwachidule, virtualization ndi mbali ya hardware ya mapurosesa amakono omwe amalola simulators kuti asatengere malangizo, koma kuwatumiza kuti aphedwe mwachindunji kwa purosesa yeniyeni, ngati, ndithudi, zomangamanga za simulator ndi purosesa ndizofanana. Kumasulira kwa Binary ndikumasulira kwa makina a alendo kukhala code host ndi kuphedwa kotsatira pa purosesa yeniyeni. Zotsatira zake, kuyerekezera kumangoyenda pang'onopang'ono, nthawi 5-10, ndipo nthawi zambiri ngakhale kuthamanga pa liwiro lofanana ndi dongosolo lenileni. Ngakhale izi zimakhudzidwa ndi zinthu zambiri. Mwachitsanzo, ngati tikufuna kutsanzira dongosolo lomwe lili ndi mapurosesa angapo, ndiye kuti liwiro limatsika nthawi zingapo izi. Kumbali ina, oyeserera ngati Simics m'matembenuzidwe aposachedwa amathandizira ma multiprocessor host hardware ndikufananiza bwino ma cores ofananira pamacores a purosesa yeniyeni.

Ngati tilankhula za kuthamanga kwa kayeseleledwe ka microarchitectural, ndiye kuti nthawi zambiri amakhala ndi maulamuliro angapo, pafupifupi 1000-10000 pang'onopang'ono kuposa kuphedwa pakompyuta wamba, popanda kuyerekezera. Ndipo kukhazikitsidwa pamlingo wazinthu zomveka kumachedwerapo ndi madongosolo angapo a ukulu. Chifukwa chake, FPGA imagwiritsidwa ntchito ngati emulator pamlingo uwu, yomwe imatha kukulitsa magwiridwe antchito.

Grafu ili m'munsiyi ikuwonetsa pafupifupi kudalira kwa liwiro la kayeseleledwe pazatsatanetsatane.

Ma simulators amakompyuta apakompyuta: choyimira chodziwika bwino cha nsanja zonse komanso osadziwika motsata mawotchi ndi njira

Kuyerekezera mopambanitsa

Ngakhale kuti amathamanga kwambiri, ma simulators a microarchitectural ndi ofala kwambiri. Kuyerekeza kwa midadada yamkati ya purosesa ndikofunikira kuti muthe kutsanzira molondola nthawi yoperekera malangizo aliwonse. Kusamvetsetsana kungabwere apa - pambuyo pake, zikuwoneka, bwanji osangopanga nthawi yoperekera malangizo aliwonse. Koma simulator yotereyi idzakhala yolakwika kwambiri, chifukwa nthawi yoperekera malangizo omwewo ingakhale yosiyana ndi kuyitana.

Chitsanzo chophweka ndi malangizo ofikira kukumbukira. Ngati malo okumbukira omwe adafunsidwa akupezeka mu cache, ndiye kuti nthawi yakupha idzakhala yochepa. Ngati chidziwitsochi sichili mu cache ("cache miss"), ndiye kuti izi zidzawonjezera kwambiri nthawi yoperekera malangizo. Chifukwa chake, mtundu wa cache ukufunika kuti muyese molondola. Komabe, nkhaniyi siimangokhala pa cache model. Purosesa samangodikirira kuti deta ibwezedwe pamtima pomwe ilibe posungira. M'malo mwake, iyamba kuchita malangizo otsatirawa, ndikusankha zomwe sizidalira zotsatira za kuwerenga pamtima. Izi ndizomwe zimatchedwa "out of order" (OOO, kunja kwa dongosolo), kofunikira kuti muchepetse nthawi ya processor. Kutengera midadada yofananira purosesa kumathandizira kuti izi zitheke powerengera nthawi yoperekera malangizo. Pakati pa malangizowa, omwe amachitidwa pamene zotsatira za kuwerenga kuchokera pamtima zikuyembekezera, ntchito yodumpha yokhazikika ikhoza kuchitika. Ngati zotsatira zake sizikudziwika pakadali pano, ndiye kuti purosesa siyisiya kupha, koma imapanga "kuganiza", imachita nthambi yoyenera ndikupitilizabe kutsatira malangizo kuchokera pakusintha. Chida choterocho, chotchedwa cholozera nthambi, chiyeneranso kukhazikitsidwa mu microarchitectural simulator.

Chithunzi chomwe chili m'munsimu chikuwonetsa midadada yayikulu ya purosesa, sikoyenera kudziwa, ikuwonetsedwa kuti iwonetse zovuta za kukhazikitsa microarchitectural.

Ma simulators amakompyuta apakompyuta: choyimira chodziwika bwino cha nsanja zonse komanso osadziwika motsata mawotchi ndi njira

Kugwiritsiridwa ntchito kwa midadada yonseyi mu purosesa yeniyeni kumagwirizanitsidwa ndi zizindikiro za wotchi yapadera, ndipo zomwezo zimachitika mu chitsanzo. Zoyeserera zazing'ono zotere zimatchedwa cycle zolondola. Cholinga chake chachikulu ndikulosera molondola momwe purosesa ikupangidwira komanso / kapena kuwerengera nthawi yochitira pulogalamu inayake, mwachitsanzo, benchmark. Ngati zikhalidwe ndizotsika kuposa zomwe zimafunikira, ndiye kuti pakufunika kusintha ma aligorivimu ndi ma processor blocks kapena kukhathamiritsa pulogalamuyo.

Monga tawonera pamwambapa, kuyerekezera koloko ndi koloko kumakhala pang'onopang'ono, kotero kumagwiritsidwa ntchito pokhapokha pophunzira nthawi zina za ntchito ya pulogalamu, kumene kuli kofunikira kudziwa kuthamanga kwenikweni kwa pulogalamuyo ndikuwunika momwe chipangizocho chikuyendera m'tsogolomu. prototype ikutsatiridwa.

Pankhaniyi, simulator yogwira ntchito imagwiritsidwa ntchito kutengera nthawi yotsala ya pulogalamuyo. Kodi kuphatikiza kogwiritsa ntchito kumeneku kumachitika bwanji? Choyamba, simulator yogwira ntchito imayambitsidwa, pomwe OS ndi zonse zofunika kuyendetsa pulogalamuyo zimayikidwa. Kupatula apo, tilibe chidwi ndi OS yokha, kapena magawo oyambilira a pulogalamuyo, kasinthidwe kake, ndi zina zambiri. Komabe, sitingathenso kulumpha magawowa ndikupita nthawi yomweyo kukachita pulogalamuyo kuyambira pakati. Chifukwa chake, zoyambira zonsezi zimayendetsedwa pa simulator yogwira ntchito. Pulogalamuyo ikachitika panthawi yomwe tikufuna kuchita chidwi, pali njira ziwiri. Mukhoza kusintha chitsanzocho ndi chitsanzo cha wotchi ndi kuzungulira ndikupitiriza kupha. Njira yoyeserera yomwe imagwiritsa ntchito nambala yotheka (ndiko kuti, mafayilo amapulogalamu opangidwa nthawi zonse) amatchedwa kuyeserera koyendetsedwa ndi execution. Iyi ndiye njira yodziwika bwino yofananira. Njira inanso ndi yotheka - kufufuza kayeseleledwe koyendetsedwa.

Kayeseleledwe kotengera kutsata

Zili ndi masitepe awiri. Pogwiritsa ntchito simulator yogwira ntchito kapena pamakina enieni, zolemba zamapulogalamu zimasonkhanitsidwa ndikulembedwa ku fayilo. chipikachi amatchedwa trace. Kutengera ndi zomwe zikuwunikiridwa, kutsata kungaphatikizepo malangizo omwe angagwiritsidwe ntchito, ma adilesi okumbukira, manambala adoko, ndi kusokoneza zambiri.

Chotsatira ndi "kusewera" kufufuza, pamene woyendetsa wotchi ndi wotchi amawerenga ndondomeko ndikuchita malangizo onse olembedwa mmenemo. Pamapeto pake, timapeza nthawi yochitira gawoli la pulogalamuyi, komanso mawonekedwe osiyanasiyana a njirayi, mwachitsanzo, kuchuluka kwa kumenyedwa mu cache.

Chinthu chofunika kwambiri pakugwira ntchito ndi zizindikiro ndi determinism, ndiko kuti, pogwiritsa ntchito kayeseleledwe kamene tafotokozera pamwambapa, mobwerezabwereza timapanganso zochitika zomwezo. Izi zimapangitsa kuti zitheke, posintha magawo achitsanzo (cache, buffer ndi kukula kwa mzere) ndikugwiritsa ntchito ma aligorivimu osiyanasiyana amkati kapena kuwakonza, kuti aphunzire momwe gawo linalake limakhudzira magwiridwe antchito adongosolo ndi njira iti yomwe imapereka zotsatira zabwino kwambiri. Zonsezi zikhoza kuchitika ndi chitsanzo cha chipangizo cha chitsanzo musanapange chitsanzo chenicheni cha hardware.

Kuvuta kwa njirayi kumakhala kofunikira kuti muyambe kuyendetsa ntchitoyo ndikusonkhanitsa zotsatila, komanso kukula kwakukulu kwa fayilo. Ubwinowu umaphatikizaponso kuti ndikokwanira kutsanzira gawo la chipangizocho kapena nsanja yosangalatsa, pomwe kuyerekezera ndi kuphedwa nthawi zambiri kumafuna chitsanzo chathunthu.

Chifukwa chake, m'nkhaniyi tidayang'ana mawonekedwe a kayeseleledwe kathunthu, adalankhula za liwiro la kukhazikitsidwa pamagawo osiyanasiyana, kayesedwe ka wotchi ndi mkombero ndi kutsata. M'nkhani yotsatira ndidzalongosola zochitika zazikulu zogwiritsira ntchito simulators, pazolinga zaumwini komanso kuchokera ku chitukuko cha makampani akuluakulu.

Source: www.habr.com

Kuwonjezera ndemanga