Simulators amin'ny rafitra informatika: simulator amin'ny sehatra feno mahazatra ary tsy fantatra amin'ny famantaranandro sy ny dian

Ao amin'ny tapany faharoa amin'ny lahatsoratra momba ny simulators rafitra informatika, dia hanohy hiresaka amin'ny endrika fampidirana tsotra momba ny simulators amin'ny solosaina aho, izany hoe momba ny simulation amin'ny sehatra feno, izay hitan'ny mpampiasa matetika indrindra, ary koa momba ny famantaranandro. -modely sy dian'ny famantaranandro, izay mahazatra kokoa amin'ny faribolan'ny mpamorona.

Simulators amin'ny rafitra informatika: simulator amin'ny sehatra feno mahazatra ary tsy fantatra amin'ny famantaranandro sy ny dian

Π’ tapany voalohany Niresaka momba ny simulators amin'ny ankapobeny aho, ary koa momba ny haavon'ny simulation. Ankehitriny, mifototra amin'izany fahalalana izany, dia manolotra soso-kevitra aho ny hitsoraka lalindalina kokoa ary hiresaka momba ny simulation amin'ny sehatra feno, ny fomba fanangonana trace, ny tokony hatao amin'izy ireo any aoriana, ary koa ny momba ny emulation microarchitectural clock-by-clock.

Simulator sehatra feno, na "Irery eny an-kianja dia tsy mpiady"

Raha te hianatra ny fomba fiasan'ny fitaovana iray manokana ianao, ohatra, karatra tambajotra, na manoratra firmware na mpamily ho an'ity fitaovana ity, dia azo atao simulate misaraka ny fitaovana toy izany. Na izany aza, ny fampiasana azy mitokana amin'ny fotodrafitrasa sisa dia tsy dia mety loatra. Mba hampandehanana ny mpamily mifanaraka amin'izany dia mila processeur afovoany, fahatsiarovana, fidirana amin'ny bus data, sns. Ankoatr'izay, ny mpamily dia mila rafitra fiasa (OS) sy tamba-jotra mba hiasa. Fanampin'izany, mety ilaina ny mpamokatra fonosana misaraka sy ny mpizara valiny.

Ny simulator amin'ny sehatra feno dia mamorona tontolo iray hampandehanana ny stack rindrambaiko feno, izay ahitana ny zava-drehetra manomboka amin'ny BIOS sy bootloader mankany amin'ny OS mihitsy sy ny subsystems isan-karazany, toy ny tamba-jotra mitovy, mpamily ary rindranasa amin'ny mpampiasa. Mba hanaovana izany, dia mampihatra ny lozisialy modely amin'ny ankamaroan'ny fitaovana solosaina: processeur sy ny fahatsiarovana, kapila, input/output fitaovana (keyboard, totozy, fampisehoana), ary koa ny karatra tambajotra iray ihany.

Ity ambany ity ny kisary sakana amin'ny chipset x58 avy amin'ny Intel. Ny simulator solosaina amin'ny sehatra feno amin'ity chipset ity dia mitaky ny fampiharana ny ankamaroan'ny fitaovana voatanisa, anisan'izany ireo ao anatin'ny IOH (Input/Output Hub) sy ICH (Input/Output Controller Hub), izay tsy aseho amin'ny antsipiriany ao amin'ny diagrama sakana. . Na izany aza, araka ny asehon'ny fampiharana, dia tsy misy fitaovana maro izay tsy ampiasain'ny rindrambaiko izay handehanantsika. Ny modely amin'ny fitaovana toy izany dia tsy mila mamorona.

Simulators amin'ny rafitra informatika: simulator amin'ny sehatra feno mahazatra ary tsy fantatra amin'ny famantaranandro sy ny dian

Matetika indrindra, feno-sehatra simulators ampiharina amin'ny processeur fampianarana ambaratonga (ISA, jereo eto ambany). lahatsoratra teo aloha). Izany dia ahafahanao mamorona ny simulator tena haingana sy tsy lafo. Tsara ihany koa ny haavon'ny ISA satria mijanona ho tsy miova izy io, fa tsy toy ny API/ABI, ohatra, izay miova matetika. Ankoatra izany, ny fampiharana amin'ny ambaratonga fampianarana dia ahafahanao mihazakazaka ilay antsoina hoe unmodified binary software, izany hoe, mihazakazaka efa voaangona kaody tsy misy fiovana, toy ny ampiasaina amin'ny fitaovana tena izy. Raha lazaina amin'ny teny hafa dia azonao atao ny manao kopia ("manary") ny kapila mafy anao, mamaritra izany ho sary ho an'ny modely amin'ny simulator amin'ny sehatra feno, ary voila! - Ny OS sy ny programa hafa dia entina ao amin'ny simulator tsy misy hetsika fanampiny.

Fampisehoana simulator

Simulators amin'ny rafitra informatika: simulator amin'ny sehatra feno mahazatra ary tsy fantatra amin'ny famantaranandro sy ny dian

Araka ny voalaza tetsy ambony, dia somary miadana ny fizotran'ny simulation ny rafitra iray manontolo, izany hoe ny fitaovana rehetra ao aminy. Raha toa ianao ka mampihatra izany rehetra izany amin'ny ambaratonga tena antsipirihany, ohatra, microarchitectural na lojika, dia ho tena miadana ny famonoana. Fa ny haavon'ny fampianarana dia safidy mety ary mamela ny OS sy ny programa hanatanteraka amin'ny hafainganam-pandeha ampy ho an'ny mpampiasa mba hifaneraserana amin'izy ireo.

Eto dia mety ny hikasika ny lohahevitra momba ny fampisehoana simulator. Matetika no refesina amin'ny IPS (instruction isan-tsegondra), ny marimarina kokoa amin'ny MIPS (IPS an-tapitrisany), izany hoe ny isan'ny torolΓ lana momba ny processeur ataon'ny simulator ao anatin'ny iray segondra. Mandritra izany fotoana izany, ny hafainganam-pandehan'ny simulation dia miankina amin'ny fahombiazan'ny rafitra izay iasan'ny simulation mihitsy. Noho izany dia mety ho marina kokoa ny miresaka momba ny "fihenam-bidy" ny simulator raha oharina amin'ny rafitra tany am-boalohany.

Ny simulators amin'ny sehatra feno mahazatra indrindra eny an-tsena, toy ny QEMU, VirtualBox na VmWare Workstation, dia manana fampisehoana tsara. Mety tsy ho tsikaritra amin'ny mpampiasa akory aza fa mandeha amin'ny simulator ny asa. Mitranga izany noho ny fahaiza-manao virtoaly manokana ampiharina amin'ny processeurs, algorithm fandikan-teny binary ary zavatra mahaliana hafa. Lohahevitra ho an'ny lahatsoratra misaraka daholo izany, fa raha fintinina, ny virtoaly dia endri-javatra fitaovana amin'ny processeur maoderina izay mamela ny simulators tsy hanao simulate ny torolΓ lana, fa handefa azy ireo mivantana amin'ny processeur tena izy, raha mazava ho azy, ny architectures. ny simulator sy ny processeur dia mitovy. Ny dikanteny binary dia ny fandikana ny kaody milina vahiny ho kaody mpampiantrano ary ny famonoana azy amin'ny processeur tena izy. Vokatr'izany, ny simulation dia miadana kely fotsiny, in-5-10, ary matetika dia mandeha amin'ny hafainganam-pandeha mitovy amin'ny rafitra tena izy. Na dia misy fiantraikany amin'ny lafin-javatra maro aza izany. Ohatra, raha te-hanahaka rafitra miaraka amin'ny processeur am-polony maro isika, dia hihena avy hatrany ny hafainganam-pandeha amin'ireo im-polony. Amin'ny lafiny iray, ny simulators toa an'i Simics amin'ny dikan-teny farany dia manohana ny fitaovana fampiantranoana multiprocessor ary mampifanaraka amin'ny fomba mahomby ny cores simulated amin'ny fototry ny processeur tena izy.

Raha miresaka momba ny hafainganam-pandehan'ny simulation microarchitectural isika, dia matetika lamina maromaro, eo amin'ny 1000-10000 eo ho eo miadana kokoa noho ny famonoana amin'ny ordinatera mahazatra, tsy misy simulation. Ary ny fampiharana eo amin'ny haavon'ny singa lojika dia miadana kokoa noho ny halehiben'ny halehibeny. Noho izany, ny FPGA dia ampiasaina ho emulator amin'ity ambaratonga ity, izay mety hampitombo be ny fampisehoana.

Ny kisary etsy ambany dia mampiseho ny fiankinan-doha eo amin'ny hafainganam-pandehan'ny simulation amin'ny antsipirihan'ny modely.

Simulators amin'ny rafitra informatika: simulator amin'ny sehatra feno mahazatra ary tsy fantatra amin'ny famantaranandro sy ny dian

Simulation beat-by-beat

Na dia eo aza ny hafainganam-pandehan'ny famonoana azy ireo, dia mahazatra ny simulators microarchitectural. Ny simulation ny sakana anatiny ao amin'ny processeur dia ilaina mba hanahafana tsara ny fotoana fanatanterahana ny fampianarana tsirairay. Mety hitranga eto ny tsy fifankahazoan-kevitra - na izany aza, toa, maninona raha programa fotsiny ny fotoana famonoana ho an'ny fampianarana tsirairay. Fa ny simulator toy izany dia ho tena tsy marina, satria ny fotoana fanatanterahana ny fampianarana mitovy dia mety tsy mitovy amin'ny antso an-tariby.

Ny ohatra tsotra indrindra dia fampianarana fidirana amin'ny fahatsiarovana. Raha hita ao amin'ny cache ny toerana fitadidiana nangatahana, dia ho kely indrindra ny fotoana famonoana. Raha tsy ao anaty cache io fampahalalana io ("cache miss"), dia hampitombo be ny fotoana hanatanterahana ny fampianarana izany. Noho izany dia ilaina ny modely cache ho an'ny simulation marina. Na izany aza, ny raharaha dia tsy voafetra amin'ny modely cache. Ny processeur dia tsy hiandry fotsiny ny angon-drakitra azo alaina amin'ny fitadidiana rehefa tsy ao anaty cache. Fa kosa, dia hanomboka hanatanteraka ny toromarika manaraka, mifidy ireo izay tsy miankina amin'ny vokatry ny famakiana avy amin'ny fitadidiana. Ity ilay antsoina hoe "tsy misy filaharana" (OOO, famonoana tsy misy baiko), ilaina mba hampihenana ny fotoana tsy miasa amin'ny processeur. Ny modely amin'ny sakana processeur mifanaraka amin'izany dia hanampy amin'ny fandraisana izany rehetra izany rehefa manisa ny fotoana famonoana ny torolΓ lana. Amin'ireo toromarika ireo, tanterahina mandritra ny andrasana ny valin'ny famakiana avy amin'ny fitadidiana, dia mety hisy hetsika fitsambikinana misy fepetra. Raha toa ka tsy fantatra ny vokatry ny toe-javatra amin'izao fotoana izao, ny processeur indray dia tsy mitsahatra ny famonoana, fa manao "mieritreritra", manatanteraka ny sampana mety ary manohy manatanteraka ny toromarika avy amin'ny teboka tetezamita. Ny sakana toy izany, antsoina hoe predictor sampana, dia tsy maintsy ampiharina amin'ny simulator microarchitectural ihany koa.

Ny sary etsy ambany dia mampiseho ny sakana lehibe amin'ny processeur, tsy ilaina ny mahafantatra azy, dia aseho fotsiny ny fahasarotan'ny fampiharana microarchitectural.

Simulators amin'ny rafitra informatika: simulator amin'ny sehatra feno mahazatra ary tsy fantatra amin'ny famantaranandro sy ny dian

Ny fiasan'ireo sakana rehetra ireo amin'ny processeur tena izy dia ampifandraisina amin'ny famantarana famantaranandro manokana, ary toy izany koa no mitranga amin'ny modely. Ny simulator microarchitectural toy izany dia antsoina hoe tsingerina marina. Ny tena tanjony dia ny haminavina tsara ny fahombiazan'ny processeur izay novolavolaina sy/na kajy ny fotoana hanatanterahana ny programa manokana, ohatra, benchmark. Raha ambany noho ny takiana ny soatoavina, dia ilaina ny manova ny algorithm sy ny sakana processeur na manatsara ny programa.

Araka ny aseho etsy ambony, ny simulation amin'ny famantaranandro dia tena miadana, noho izany dia ampiasaina raha tsy mandalina ny fotoana sasany amin'ny fiasan'ny programa, izay ilaina ny mamantatra ny tena hafainganam-pandehan'ny fanatanterahana ny programa ary manombatombana ny fahombiazan'ny fitaovana amin'ny ho avy. atao simulate ny prototype.

Amin'ity tranga ity, ny simulator miasa dia ampiasaina hanamboarana ny fotoana sisa tavela amin'ny programa. Ahoana no mitranga amin'ny zava-misy io fitambaran'ny fampiasana io? Voalohany, natomboka ny simulator miasa, izay misy ny OS sy ny zavatra rehetra ilaina amin'ny fampandehanana ny programa amin'ny fianarana. Raha ny marina, tsy liana amin'ny OS mihitsy izahay, na amin'ny dingana voalohany amin'ny fandefasana ny programa, ny fanamafisana azy, sns. Na izany aza, tsy afaka mandingana ireo ampahany ireo ihany koa isika ary mandroso avy hatrany amin'ny fanatanterahana ny programa avy eo afovoany. Noho izany, ireo dingana voalohany rehetra ireo dia mandeha amin'ny simulator miasa. Rehefa vita ny fandaharana amin'ny fotoana mahaliana antsika dia misy safidy roa azo atao. Azonao atao ny manolo ny modely amin'ny modely amin'ny famantaranandro ary manohy ny famonoana. Ny maodely simulation izay mampiasa code executable (izany hoe, rakitra fandaharana tsy tapaka) dia antsoina hoe simulation execution driven. Ity no safidy simulation mahazatra indrindra. Fomba iray hafa azo atao koa - trace driven simulation.

Simulation mifototra amin'ny trace

Misy dingana roa izany. Amin'ny fampiasana simulator miasa na amin'ny rafitra tena izy, dia angonina ny diarin'ny hetsika fandaharana ary soratana amin'ny rakitra. Ity log ity dia antsoina hoe trace. Miankina amin'ny zavatra hodinihina, ny trace dia mety ahitana toromarika azo tanterahina, adiresy fitadidiana, laharan'ny seranan-tsambo, ary fampahalalana manapaka.

Ny dingana manaraka dia ny "milalao" ny trace, rehefa mamaky ny trace ny simulator amin'ny famantaranandro ary manatanteraka ny torolΓ lana rehetra voasoratra ao. Amin'ny farany dia mahazo ny fotoana famonoana an'ity ampahany amin'ny programa ity isika, ary koa ny toetra isan-karazany amin'ity dingana ity, ohatra, ny isan-jaton'ny hitifitra ao amin'ny cache.

Ny endri-javatra manan-danja amin'ny fiasana amin'ny traces dia ny determinisme, izany hoe, amin'ny fampandehanana ny simulation amin'ny fomba voalaza etsy ambony, dia mamerina ny filaharan'ny hetsika mitovy hatrany isika. Izany dia mahatonga azy io ho azo atao, amin'ny alΓ lan'ny fanovana ny mari-pamantarana modely (cache, buffer ary ny haben'ny filaharana) sy ny fampiasana algorithms anatiny samihafa na ny fandrindrana azy ireo, mba handinihana ny fiantraikan'ny mari-pamantarana manokana amin'ny fahombiazan'ny rafitra ary inona no safidy manome vokatra tsara indrindra. Izany rehetra izany dia azo atao amin'ny modely fitaovana prototype alohan'ny hamoronana prototype fitaovana tena izy.

Ny fahasarotan'ity fomba fiasa ity dia ny filΓ na voalohany ny fampiharana sy ny fanangonana ny trace, ary koa ny haben'ny rakitra trace. Ny tombony dia ny hoe ampy ny manao simulate ny ampahany amin'ny fitaovana na ny sehatra mahaliana, fa ny simulation amin'ny famonoana matetika dia mitaky modely feno.

Noho izany, ato amin'ity lahatsoratra ity dia nijery ny endriky ny simulation full-platform isika, niresaka momba ny hafainganam-pandehan'ny fampiharana amin'ny ambaratonga samihafa, ny simulation amin'ny famantaranandro sy ny dian. Ao amin'ny lahatsoratra manaraka dia hamaritra ireo toe-javatra lehibe indrindra amin'ny fampiasana simulators aho, na ho an'ny tanjona manokana na avy amin'ny fomba fijery fampandrosoana amin'ny orinasa lehibe.

Source: www.habr.com

Add a comment