Computer system simulators: yakajairika yakazara-platform simulator uye isingazivikanwe bara uye kuteedzera

Muchikamu chechipiri chechinyorwa pamusoro pemakomputa system simulators, ini ndicharamba ndichitaura mune yakapusa sumo fomu pamusoro pemakomputa simulators, kureva nezve yakazara-platform simulation, iyo avhareji mushandisi anowanzo sangana, pamwe nezve wachi-ne. -clock modhi uye zviteshi, izvo zvinonyanya kuwanda mumadenderedzwa evagadziri.

Computer system simulators: yakajairika yakazara-platform simulator uye isingazivikanwe bara uye kuteedzera

Π’ kutanga chikamu Ndakataura nezve izvo simulators mune zvakajairika, uye nezve mazinga ekufananidza. Zvino, zvichibva paruzivo irworwo, ini ndinokurudzira kunyura zvishoma uye kutaura nezve yakazara-platform simulation, nzira yekuunganidza zvisaririra, zvekuita navo gare gare, pamwe nezve wachi-ne-wachi microarchitectural emulation.

Yakazara papuratifomu simulator, kana "Ega mumunda haasi murwi"

Kana iwe uchida kudzidza kushanda kwechigadzirwa chimwe chete, semuenzaniso, kadhi yetiweki, kana kunyora firmware kana mutyairi wechinhu ichi, ipapo chigadzirwa chakadaro chinogona kuenzaniswa zvakasiyana. Nekudaro, kuishandisa mukuzviparadzanisa nevamwe kubva kune zvimwe zvivakwa hazvina kunyatso nyanyo. Kuti umhanye mutyairi anoenderana, iwe unozoda yepakati processor, ndangariro, kupinda kune data bhazi, nezvimwe. Mukuwedzera, mutyairi anoda sisitimu yekushandisa (OS) uye network stack kuti ishande. Mukuwedzera, jenareta yepakiti yakasiyana uye sevha yekupindura inogona kudiwa.

Iyo yakazara-platform simulator inogadzira nharaunda yekumhanyisa yakazara software stack, iyo inosanganisira zvese kubva kuBIOS uye bootloader kuenda kuOS pachayo uye akasiyana masisitimu ayo, akadai akafanana netiweki stack, vatyairi, uye mushandisi-level application. Kuti uite izvi, inoshandisa mapurogiramu emhando dzemakombiyuta akawanda: processor uye chiyeuchidzo, diski, zvigadzirwa zvekupinza / zvekubuda (keyboard, mouse, display), pamwe chete netiweki kadhi.

Pazasi pane block dhizaini yeX58 chipset kubva kuIntel. Iyo yakazara-yepuratifomu komputa simulator pane iyi chipset inoda kushandiswa kweakawanda emidziyo yakanyorwa, kusanganisira iyo iri mukati meIOH (Input/Output Hub) uye ICH (Input/Output Controller Hub), iyo isina kuratidzwa zvakadzama padhizaini yebhuroka. . Kunyangwe, sekuratidzira kunoratidza, hapana michina mizhinji isinga shandiswe nesoftware yatiri kuzomhanyisa. Mienzaniso yezvigadzirwa zvakadaro haidi kugadzirwa.

Computer system simulators: yakajairika yakazara-platform simulator uye isingazivikanwe bara uye kuteedzera

Kazhinji, yakazara-yepuratifomu simulators inoshandiswa padanho rekuraira processor (ISA, ona pazasi). nyaya yapfuura) Izvi zvinokutendera kuti ugadzire iyo simulator pachayo nekukurumidza uye isingadhure. Iyo ISA level yakanakawo nekuti inoramba ichiwedzera kana kushoma, kusiyana, semuenzaniso, iyo API / ABI level, iyo inochinja kakawanda. Uye zvakare, kuita padanho rekuraira kunoita kuti iwe umhanye iyo inonzi unmodified bhinari software, ndiko kuti, mhanyisa yakatounganidzwa kodhi pasina chero shanduko, chaizvo sezvainoshandiswa pane chaiyo hardware. Mune mamwe mazwi, iwe unogona kuita kopi ("dump") ye hard drive yako, tsanangura iyo semufananidzo wemuenzaniso mune yakazara-platform simulator, uye voila! -Iyo OS uye zvimwe zvirongwa zvinoremerwa mune simulator pasina mamwe maitiro.

Kuita simulator

Computer system simulators: yakajairika yakazara-platform simulator uye isingazivikanwe bara uye kuteedzera

Sezvambotaurwa pamusoro apa, maitiro ekufananidza iyo yose sisitimu, kureva, ese maturusi ayo, ibasa rinononoka. Kana iwe ukaitawo zvese izvi pamwero wakadzama, semuenzaniso, microarchitectural kana zvine musoro, ipapo kuuraya kunozononoka zvakanyanya. Asi iyo nhanho yekuraira isarudzo yakakodzera uye inobvumira iyo OS uye zvirongwa kuti zviite nekumhanya zvakaringana kuti mushandisi abatane navo zvakanaka.

Pano zvingave zvakakodzera kubata pamusoro pemusoro wekuita simulator. Inowanzoyerwa muIPS (mirayiridzo pasekondi), zvakanyanya muMIPS (mamiriyoni IPS), ndiko kuti, nhamba yemirairo yepurosesa inoitwa nesimulator mune imwe sekondi. Panguva imwecheteyo, kukurumidza kwekufananidza kunoenderanawo nekushanda kwegadziriro iyo iyo simulation pachayo inomhanya. Nokudaro, zvingave zvakanyatsorurama kutaura nezve "kuderera" kwesimulator kana ichienzaniswa nehurongwa hwepakutanga.

Iyo inowanzojairika yakazara-platform simulators pamusika, yakadai seQEMU, VirtualBox kana VmWare Workstation, ine maitiro akanaka. Zvinogona kunge zvisingaonekwe kumushandisi kuti basa ririkuitika mune simulator. Izvi zvinoitika nekuda kwehunyanzvi hwekuita virtualization hunoitwa muma processors, mabhinari ekushandura algorithms uye zvimwe zvinhu zvinonakidza. Iyi yese inyaya yechinyorwa chakasiyana, asi muchidimbu, virtualization inzvimbo yehardware yemazuva ano processors inobvumira simulators kusatevedzera mirairo, asi kuti vatumire ivo kuurayiwa zvakananga kune chaiyo processor, kana, chokwadi, zvivakwa zve. iyo simulator uye processor zvakafanana. Binary dudziro ndiyo shandurudzo yemuchina wechina kodhi kuita kodhi yekugamuchira uye kunotevera kuuraya pane chaiyo processor. Nekuda kweizvozvo, iyo simulation inongononoka zvishoma, 5-10 nguva, uye kazhinji inomhanya nekumhanya kwakafanana neiyo chaiyo system. Kunyangwe izvi zvichikanganiswa nezvinhu zvakawanda. Semuenzaniso, kana isu tichida kutevedzera sisitimu ine akati wandei ma processors, ipapo kumhanya kunobva kwadonha neawa akati wandei. Kune rimwe divi, ma simulators seSimics mushanduro dzichangoburwa anotsigira multiprocessor host Hardware uye zvinonyatso fananidza iwo akateedzerwa cores pamacores eiyo chaiyo processor.

Kana tikataura nezve kumhanya kweiyo microarchitectural simulation, saka inowanzova akati wandei mirairo yehukuru, inenge 1000-10000 nguva inononoka pane kuurayiwa pamakomputa akajairwa, pasina simulation. Uye kushandiswa pamwero wezvinhu zvine musoro kunononoka nemirairo yakati wandei yehukuru. Naizvozvo, iyo FPGA inoshandiswa seyemulator padanho iri, iyo inogona kuwedzera zvakanyanya kuita.

Girafu riri pazasi rinoratidza fungidziro yekutsamira kwekufananidza kumhanya pane yemhando yemhando.

Computer system simulators: yakajairika yakazara-platform simulator uye isingazivikanwe bara uye kuteedzera

Beat-by-beat simulation

Pasinei nekumhanya kwavo kwakaderera, microarchitectural simulators yakajairika. Simulation yemukati mablocks e processor inodiwa kuti unyatso kutevedzera nguva yekuuraya yerairo yega yega. Kusanzwisisana kunogona kumuka pano - mushure mezvose, zvingaite senge, wadii kungoronga nguva yekuuraya yekuraira kwega kwega. Asi simulator yakadaro ichave isina kunyanya kurongeka, sezvo nguva yekuuraya yemirairo yakafanana inogona kusiyana kubva pakudana kudana.

Muenzaniso wakapfava murairo wekuwana ndangariro. Kana iyo yakakumbirwa ndangariro nzvimbo inowanikwa mune cache, ipapo nguva yekuuraya ichave shoma. Kana ruzivo urwu rusiri mu cache ("cache miss"), zvino izvi zvichawedzera zvakanyanya nguva yekuuraya yekuraira. Saka, cache modhi inodiwa pakuenzanisa kwakaringana. Nekudaro, iyo nyaya haina kuganhurirwa kune cache modhi. Iyo processor haingomirira kuti data idzorerwe kubva mundangariro kana isiri mu cache. Pane kudaro, ichatanga kuita mirairo inotevera, ichisarudza iyo isingaenderane nemhedzisiro yekuverenga kubva mundangariro. Uku ndiko kunonzi "kunze kwekurongeka" kuuraya (OOO, kunze kwekurongeka kuuraya), inodiwa kudzikisa processor isingaiti nguva. Kutevedzera mabhuroka anowirirana processor kuchabatsira kutora zvese izvi mukufunga kana uchiverenga nguva yekuita yemirairo. Pakati pemirairo iyi, inoitwa apo mhedzisiro yekuverenga kubva mundangariro yakamirirwa, kusvetuka kwemamiriro ezvinhu kunogona kuitika. Kana mhedzisiro yemamiriro isingazivikanwe parizvino, saka zvakare processor hairegi kuurayiwa, asi inoita "kufungidzira", inoita bazi rakakodzera uye inoenderera mberi nekuita mirairo kubva padanho rekuchinja. Chivharo chakadaro, chinodaidzwa kuti fungidziro yebazi, inofanirawo kuitwa mune microarchitectural simulator.

Mufananidzo uri pazasi unoratidza mabhuroko makuru e processor, hazvifanirwe kuzviziva, inoratidzwa chete kuratidza kuomarara kweiyo microarchitectural kuitiswa.

Computer system simulators: yakajairika yakazara-platform simulator uye isingazivikanwe bara uye kuteedzera

Kushanda kweaya mabhuraki ese mune chaiyo processor inowiriraniswa neakakosha masaini masaini, uye zvakafanana zvinoitika mumuenzaniso. Yakadaro microarchitectural simulator inonzi kutenderera kwakaringana. Chinangwa chayo chikuru ndechekufanotaura nemazvo kushanda kwe processor iri kugadzirwa uye / kana kuverenga nguva yekuitwa yeimwe chirongwa, semuenzaniso, bhenji. Kana hunhu hwakaderera pane zvinodiwa, saka zvichave zvakafanira kugadzirisa algorithms uye processor mabhuroki kana kukwirisa chirongwa.

Sezvaratidzwa pamusoro, wachi-ne-wachi simulation inononoka kwazvo, saka inoshandiswa chete kana uchidzidza dzimwe nguva dzechirongwa chekushanda, pazvinenge zvichidikanwa kutsvaga kumhanya chaiko kwekuita chirongwa uye kuongorora mashandiro emangwana echishandiso chazvo. prototype iri kutevedzera.

Muchiitiko ichi, simulator inoshanda inoshandiswa kuenzanisa nguva yakasara yepurogiramu. Iko kusanganiswa kwekushandiswa kunoitika sei muchokwadi? Kutanga, iyo inoshanda simulator inotangwa, iyo iyo OS uye zvese zvinodiwa kuti umhanye chirongwa chiri pasi pechidzidzo zvinoremerwa. Mushure mezvose, isu hatisi kufarira iyo OS pachayo, kana mumatanho ekutanga ekutanga chirongwa, kumisikidzwa kwayo, nezvimwe. Nekudaro, isu hatigone kusvetuka zvikamu izvi tobva taenderera mberi nekuita chirongwa kubva pakati. Naizvozvo, ese aya matanho ekutanga anoitiswa pane inoshanda simulator. Pashure pokunge purogiramu yaitwa kusvika panguva yatinofarira, zvingasarudzwa zviviri zvinogoneka. Iwe unogona kutsiva modhi newachi-ne-kutenderera modhi uye kuenderera mberi nekuita. Iyo yekufananidza modhi inoshandisa kodhi kodhi (kureva, yakajairwa yakaunganidzwa mafaera epurogiramu) inonzi kuuraya inofambiswa simulation. Iyi ndiyo yakajairika yekufananidza sarudzo. Imwe nzira zvakare inogoneka - trace driven simulation.

Trace-based simulation

Inosanganisira matanho maviri. Uchishandisa inoshanda simulator kana pane chaiyo system, log yezviitwa zvechirongwa inounganidzwa uye inonyorwa kune faira. Logi iyi inonzi trace. Zvichienderana nezviri kuongororwa, kutsvaga kunogona kusanganisira mirairo inogoneka, kero yekurangarira, nhamba dzechiteshi, uye kukanganisa ruzivo.

Nhanho inotevera ndeye "kutamba" kuteedzera, kana wachi-ne-wachi simulator inoverenga trace uye inoita mirairo yese yakanyorwa mairi. Pakupedzisira, tinowana nguva yekuuraya yechikamu chechirongwa ichi, pamwe chete nemaitiro akasiyana-siyana eichi chiitiko, semuenzaniso, chikamu chekurova mu cache.

Chinhu chakakosha chekushanda nematanho ndeye determinism, ndiko kuti, nekumhanyisa kuenzanisa nenzira yakatsanangurwa pamusoro, kakawanda tinobereka kutevedzana kwakafanana kwezviito. Izvi zvinoita kuti zvigoneke, nekushandura modhi paramita (cache, buffer uye queue saizi) uye kushandisa akasiyana algorithms emukati kana kuagadzirisa, kudzidza kuti imwe parameter inokanganisa sei mashandiro ehurongwa uye ndeipi sarudzo inopa mhedzisiro yakanaka. Zvese izvi zvinogona kuitwa neiyo prototype mudziyo modhi usati wagadzira chaiyo hardware prototype.

Iyo yakaoma yeiyi nzira iri mukudiwa kwekutanga kumhanyisa application uye kuunganidza trace, pamwe nehukuru hukuru hwefaira rekutsvaga. Zvakanakira zvinosanganisira chokwadi chekuti zvakakwana kutevedzera chete chikamu chechishandiso kana chikuva chekufarira, nepo simulation nekuuraya kazhinji inoda muenzaniso wakakwana.

Saka, munyaya ino takatarisa maitiro e-full-platform simulation, akataura nezve kukurumidza kwekushandiswa pamatanho akasiyana, kuenzanisa kwewachi-ne-kutenderera uye kutsvaga. Muchinyorwa chinotevera ini ndichatsanangura mamiriro makuru ekushandisa simulators, zvese nekuda kwezvinangwa zvemunhu uye kubva padanho rekusimudzira mumakambani makuru.

Source: www.habr.com

Voeg