Simulaturi ta 'sistemi tal-kompjuter: simulatur familjari ta' pjattaforma sħiħa u mhux magħruf lejn l-arloġġ u traċċi

Fit-tieni parti tal-artiklu dwar is-simulaturi tas-sistema tal-kompjuter, se nkompli nitkellem f'forma introduttorja sempliċi dwar is-simulaturi tal-kompjuter, jiġifieri dwar is-simulazzjoni tal-pjattaforma sħiħa, li l-utent medju ħafna drabi jiltaqa 'ma', kif ukoll dwar l-arloġġ. -mudell tal-arloġġ u traċċi, li huma aktar komuni fl-iżviluppatur ċrieki.

Simulaturi ta 'sistemi tal-kompjuter: simulatur familjari ta' pjattaforma sħiħa u mhux magħruf lejn l-arloġġ u traċċi

В l-ewwel parti Tkellimt dwar x'inhuma s-simulaturi b'mod ġenerali, kif ukoll dwar il-livelli ta 'simulazzjoni. Issa, abbażi ta 'dak l-għarfien, nipproponi li għadsa ftit aktar fil-fond u nitkellem dwar simulazzjoni ta' pjattaforma sħiħa, kif tiġbor traċċi, x'għandek tagħmel magħhom aktar tard, kif ukoll dwar emulazzjoni mikroarkitetturali arloġġ b'arloġġ.

Simulatur tal-pjattaforma sħiħa, jew "Waħdu fil-qasam mhuwiex gwerrier"

Jekk trid tistudja l-operat ta 'apparat speċifiku wieħed, pereżempju, karta tan-netwerk, jew tikteb firmware jew sewwieq għal dan l-apparat, allura tali apparat jista' jiġi simulat separatament. Madankollu, l-użu tiegħu f'iżolament mill-bqija tal-infrastruttura mhuwiex konvenjenti ħafna. Biex tħaddem is-sewwieq korrispondenti, ser ikollok bżonn proċessur ċentrali, memorja, aċċess għal xarabank tad-dejta, eċċ. Barra minn hekk, is-sewwieq jeħtieġ sistema operattiva (OS) u munzell tan-netwerk biex jiffunzjona. Barra minn hekk, ġeneratur ta' pakketti separati u server ta' rispons jistgħu jkunu meħtieġa.

Simulatur ta 'pjattaforma sħiħa joħloq ambjent għat-tħaddim ta' munzell ta 'softwer komplut, li jinkludi kollox mill-BIOS u bootloader għall-OS innifsu u s-subsistemi varji tiegħu, bħall-istess munzell tan-netwerk, sewwieqa, u applikazzjonijiet fil-livell tal-utent. Biex tagħmel dan, timplimenta mudelli ta 'softwer tal-biċċa l-kbira tat-tagħmir tal-kompjuter: proċessur u memorja, disk, tagħmir ta' input/output (tastiera, maws, wiri), kif ukoll l-istess karta tan-netwerk.

Hawn taħt hemm dijagramma blokk taċ-chipset x58 minn Intel. Simulatur tal-kompjuter b'pjattaforma sħiħa fuq dan iċ-chipset jeħtieġ l-implimentazzjoni tal-biċċa l-kbira tal-apparati elenkati, inklużi dawk ġewwa l-IOH (Input/Output Hub) u ICH (Input/Output Controller Hub), li mhumiex murija fid-dettall fuq id-dijagramma tal-blokk . Għalkemm, kif turi l-prattika, m'hemmx ħafna apparati li ma jintużawx mis-softwer li se nħaddmu. Mudelli ta 'tali apparati m'għandhomx għalfejn jinħolqu.

Simulaturi ta 'sistemi tal-kompjuter: simulatur familjari ta' pjattaforma sħiħa u mhux magħruf lejn l-arloġġ u traċċi

Ħafna drabi, simulaturi ta 'pjattaforma sħiħa huma implimentati fil-livell ta' istruzzjoni tal-proċessur (ISA, ara hawn taħt). artiklu preċedenti). Dan jippermettilek li toħloq is-simulatur innifsu relattivament malajr u b'mod irħis. Il-livell ISA huwa tajjeb ukoll għax jibqa' bejn wieħed u ieħor kostanti, b'differenza, pereżempju, il-livell API/ABI, li jinbidel aktar spiss. Barra minn hekk, l-implimentazzjoni fil-livell ta 'struzzjoni tippermettilek li tħaddem l-hekk imsejjaħ softwer binarju mhux modifikat, jiġifieri, tħaddem kodiċi diġà kkompilat mingħajr ebda tibdil, eżattament kif jintuża fuq hardware reali. Fi kliem ieħor, tista 'tagħmel kopja ("dump") tal-hard drive tiegħek, speċifikaha bħala immaġni għal mudell f'simulatur ta' pjattaforma sħiħa, u voila! – L-OS u programmi oħra huma mgħobbija fis-simulatur mingħajr ebda azzjonijiet addizzjonali.

Prestazzjoni tas-simulatur

Simulaturi ta 'sistemi tal-kompjuter: simulatur familjari ta' pjattaforma sħiħa u mhux magħruf lejn l-arloġġ u traċċi

Kif issemma eżatt fuq, il-proċess ta 'simulazzjoni tas-sistema kollha, jiġifieri, l-apparati kollha tagħha, huwa impriża pjuttost bil-mod. Jekk timplimenta wkoll dan kollu f'livell dettaljat ħafna, pereżempju, mikroarkitettoniku jew loġiku, allura l-eżekuzzjoni ssir estremament bil-mod. Iżda l-livell ta 'istruzzjoni huwa għażla xierqa u jippermetti li l-OS u l-programmi jesegwixxu b'veloċitajiet suffiċjenti biex l-utent jinteraġixxi magħhom bil-kumdità.

Hawnhekk ikun xieraq li tmiss is-suġġett tal-prestazzjoni tas-simulatur. Normalment jitkejjel f'IPS (struzzjonijiet kull sekonda), b'mod aktar preċiż f'MIPS (miljuni IPS), jiġifieri, in-numru ta 'struzzjonijiet tal-proċessur esegwiti mis-simulatur f'sekonda waħda. Fl-istess ħin, il-veloċità tas-simulazzjoni tiddependi wkoll fuq il-prestazzjoni tas-sistema li fuqha taħdem is-simulazzjoni nnifisha. Għalhekk, jista 'jkun aktar korrett li titkellem dwar it-"tnaqqis" tas-simulatur meta mqabbel mas-sistema oriġinali.

L-aktar simulaturi ta 'pjattaforma sħiħa komuni fis-suq, bħal QEMU, VirtualBox jew VmWare Workstation, għandhom prestazzjoni tajba. Jista' lanqas ikun notevoli għall-utent li x-xogħol ikun għaddej fis-simulatur. Dan jiġri grazzi għall-kapaċitajiet speċjali ta 'virtwalizzazzjoni implimentati fil-proċessuri, algoritmi ta' traduzzjoni binarja u affarijiet interessanti oħra. Dan kollu huwa suġġett għal artiklu separat, iżda fil-qosor, il-virtwalizzazzjoni hija karatteristika ta 'hardware ta' proċessuri moderni li tippermetti lis-simulaturi ma jissimulawx struzzjonijiet, iżda li jibagħtuhom għall-eżekuzzjoni direttament lil proċessur reali, jekk, ovvjament, l-arkitetturi ta ' is-simulatur u l-proċessur huma simili. It-traduzzjoni binarja hija t-traduzzjoni tal-kodiċi tal-magna mistiedna f'kodiċi ospitanti u l-eżekuzzjoni sussegwenti fuq proċessur reali. Bħala riżultat, is-simulazzjoni hija biss ftit aktar bil-mod, 5-10 darbiet, u ħafna drabi anke taħdem bl-istess veloċità bħas-sistema reali. Għalkemm dan huwa influwenzat minn ħafna fatturi. Pereżempju, jekk irridu nisimulaw sistema b'diversi għexieren ta 'proċessuri, allura l-veloċità tinżel immedjatament b'dawn il-bosta għexieren ta' drabi. Min-naħa l-oħra, simulaturi bħal Simics fl-aħħar verżjonijiet jappoġġaw ħardwer host multiproċessur u effettivament parallellizzaw il-qlub simulati fuq il-qlub ta 'proċessur reali.

Jekk nitkellmu dwar il-veloċità tas-simulazzjoni mikroarkitettonika, allura ġeneralment tkun bosta ordnijiet ta 'kobor, madwar 1000-10000 darba aktar bil-mod mill-eżekuzzjoni fuq kompjuter regolari, mingħajr simulazzjoni. U l-implimentazzjonijiet fil-livell ta 'elementi loġiċi huma aktar bil-mod b'diversi ordnijiet ta' kobor. Għalhekk, FPGA jintuża bħala emulatur f'dan il-livell, li jista 'jżid il-prestazzjoni b'mod sinifikanti.

Il-graff hawn taħt turi dipendenza approssimattiva tal-veloċità tas-simulazzjoni fuq id-dettall tal-mudell.

Simulaturi ta 'sistemi tal-kompjuter: simulatur familjari ta' pjattaforma sħiħa u mhux magħruf lejn l-arloġġ u traċċi

Simulazzjoni taħbit b'taħbit

Minkejja l-veloċità ta 'eżekuzzjoni baxxa tagħhom, is-simulaturi mikroarkitettoniċi huma pjuttost komuni. Is-simulazzjoni tal-blokki interni tal-proċessur hija meħtieġa sabiex tissimula b'mod preċiż il-ħin ta 'eżekuzzjoni ta' kull istruzzjoni. Jista 'jinqala' nuqqas ta' ftehim hawnhekk - wara kollox, jidher, għaliex mhux sempliċement tipprogramma l-ħin ta 'eżekuzzjoni għal kull istruzzjoni. Iżda simulatur bħal dan se jkun mhux preċiż ħafna, peress li l-ħin ta 'eżekuzzjoni tal-istess istruzzjoni jista' jvarja minn sejħa għal sejħa.

L-aktar eżempju sempliċi huwa istruzzjoni ta 'aċċess għall-memorja. Jekk il-post tal-memorja mitlub ikun disponibbli fil-cache, allura l-ħin tal-eżekuzzjoni jkun minimu. Jekk din l-informazzjoni mhix fil-cache ("cache miss"), allura dan iżid ħafna l-ħin ta 'eżekuzzjoni tal-istruzzjoni. Għalhekk, mudell cache huwa meħtieġ għal simulazzjoni preċiża. Madankollu, il-kwistjoni mhix limitata għall-mudell tal-cache. Il-proċessur mhux se sempliċement jistenna li d-data tiġi rkuprata mill-memorja meta ma tkunx fil-cache. Minflok, se tibda tesegwixxi l-istruzzjonijiet li jmiss, billi tagħżel dawk li ma jiddependux fuq ir-riżultat tal-qari mill-memorja. Din hija l-hekk imsejħa eżekuzzjoni "out of order" (OOO, out of order execution), meħtieġa biex timminimizza l-ħin idle tal-proċessur. L-immudellar tal-blokki tal-proċessuri korrispondenti se jgħin biex jittieħed kont ta 'dan kollu meta jiġi kkalkulat il-ħin ta' eżekuzzjoni tal-istruzzjonijiet. Fost dawn l-istruzzjonijiet, esegwiti waqt li r-riżultat tal-qari mill-memorja huwa mistenni, tista 'sseħħ operazzjoni ta' qabża kondizzjonali. Jekk ir-riżultat tal-kundizzjoni mhuwiex magħruf fil-mument, imbagħad għal darb'oħra l-proċessur ma jwaqqafx l-eżekuzzjoni, iżda jagħmel "raden", iwettaq il-fergħa xierqa u jkompli jwettaq b'mod proattiv l-istruzzjonijiet mill-punt ta 'tranżizzjoni. Blokk bħal dan, imsejjaħ tbassir tal-fergħa, għandu jiġi implimentat ukoll fis-simulatur mikroarkitettoniku.

L-istampa hawn taħt turi l-blokki ewlenin tal-proċessur, mhux meħtieġ li tkun taf, hija murija biss biex turi l-kumplessità tal-implimentazzjoni mikroarkitetturali.

Simulaturi ta 'sistemi tal-kompjuter: simulatur familjari ta' pjattaforma sħiħa u mhux magħruf lejn l-arloġġ u traċċi

It-tħaddim ta 'dawn il-blokki kollha fi proċessur reali huwa sinkronizzat minn sinjali ta' arloġġ speċjali, u l-istess jiġri fil-mudell. Simulatur mikroarkitettoniku bħal dan jissejjaħ ċiklu preċiż. L-għan ewlieni tiegħu huwa li tbassar b'mod preċiż il-prestazzjoni tal-proċessur li qed jiġi żviluppat u/jew tikkalkula l-ħin ta 'eżekuzzjoni ta' programm speċifiku, pereżempju, benchmark. Jekk il-valuri huma aktar baxxi milli meħtieġ, allura jkun meħtieġ li jiġu mmodifikati l-algoritmi u l-blokki tal-proċessur jew jiġi ottimizzat il-programm.

Kif muri hawn fuq, is-simulazzjoni arloġġ b'arloġġ hija bil-mod ħafna, għalhekk tintuża biss meta jiġu studjati ċerti mumenti tal-operat ta 'programm, fejn huwa meħtieġ li ssir taf il-veloċità reali tal-eżekuzzjoni tal-programm u tevalwa l-prestazzjoni futura tal-apparat li tiegħu prototip qed jiġi simulat.

F'dan il-każ, jintuża simulatur funzjonali biex jissimula l-ħin li jifdal tal-programm. Kif jiġri din il-kombinazzjoni ta 'użu fir-realtà? L-ewwel, jitnieda s-simulatur funzjonali, li fuqu jitgħabba l-OS u dak kollu meħtieġ biex jitmexxa l-programm taħt studju. Wara kollox, m'aħniex interessati fl-OS innifsu, u lanqas fl-istadji inizjali tat-tnedija tal-programm, il-konfigurazzjoni tiegħu, eċċ. Madankollu, aħna wkoll ma nistgħux naqbżu dawn il-partijiet u immedjatament ngħaddu għall-eżekuzzjoni tal-programm min-nofs. Għalhekk, dawn il-passi preliminari kollha jitmexxew fuq simulatur funzjonali. Wara li l-programm ikun ġie esegwit sal-mument ta 'interess għalina, żewġ għażliet huma possibbli. Tista 'tissostitwixxi l-mudell b'mudell ta' arloġġ b'ċiklu u tkompli l-eżekuzzjoni. Il-mod ta 'simulazzjoni li juża kodiċi eżekutibbli (jiġifieri, fajls ta' programmi regolari kkumpilati) jissejjaħ simulazzjoni mmexxija mill-eżekuzzjoni. Din hija l-iktar għażla ta' simulazzjoni komuni. Approċċ ieħor huwa wkoll possibbli - simulazzjoni mmexxija minn traċċa.

Simulazzjoni bbażata fuq traċċa

Tikkonsisti f'żewġ passi. Bl-użu ta 'simulatur funzjonali jew fuq sistema reali, jinġabar log ta' azzjonijiet tal-programm u jinkiteb f'fajl. Dan il-ġurnal jissejjaħ traċċa. Skont dak li qed jiġi eżaminat, it-traċċa tista 'tinkludi struzzjonijiet eżekutibbli, indirizzi tal-memorja, numri tal-port, u informazzjoni dwar l-interruzzjoni.

Il-pass li jmiss huwa li "tilgħab" it-traċċa, meta s-simulatur arloġġ b'arloġġ jaqra t-traċċa u jesegwixxi l-istruzzjonijiet kollha miktuba fiha. Fl-aħħar, irridu jiksbu l-ħin ta 'eżekuzzjoni ta' din il-biċċa tal-programm, kif ukoll diversi karatteristiċi ta 'dan il-proċess, pereżempju, il-perċentwal ta' hits fil-cache.

Karatteristika importanti ta 'ħidma bit-traċċi hija d-determiniżmu, jiġifieri, billi tmexxi s-simulazzjoni bil-mod deskritt hawn fuq, għal darb'oħra nirriproduċu l-istess sekwenza ta' azzjonijiet. Dan jagħmilha possibbli, billi jinbidlu l-parametri tal-mudell (cache, buffer u daqsijiet tal-kju) u jużaw algoritmi interni differenti jew irfinarhom, li jiġi studjat kif parametru partikolari jaffettwa l-prestazzjoni tas-sistema u liema għażla tagħti l-aħjar riżultati. Dan kollu jista 'jsir b'mudell ta' apparat prototip qabel ma jinħoloq prototip ta 'hardware attwali.

Il-kumplessità ta 'dan l-approċċ tinsab fil-ħtieġa li l-ewwel titħaddem l-applikazzjoni u tiġbor it-traċċa, kif ukoll id-daqs enormi tal-fajl tat-traċċa. Il-vantaġġi jinkludu l-fatt li huwa biżżejjed li tissimula biss il-parti tal-apparat jew il-pjattaforma ta 'interess, filwaqt li s-simulazzjoni bl-eżekuzzjoni ġeneralment teħtieġ mudell komplut.

Allura, f'dan l-artikolu ħares lejn il-karatteristiċi ta 'simulazzjoni ta' pjattaforma sħiħa, tkellimna dwar il-veloċità tal-implimentazzjonijiet f'livelli differenti, simulazzjoni arloġġ b'ċiklu u traċċi. Fl-artiklu li jmiss ser niddeskrivi x-xenarji ewlenin għall-użu ta 'simulaturi, kemm għal skopijiet personali kif ukoll mil-lat ta' żvilupp f'kumpaniji kbar.

Sors: www.habr.com

Żid kumment