Li-simulator tsa litsamaiso tsa likhomphutha: simulator e tloaelehileng ea sethala se felletseng le e sa tsejoeng ka nako le mesaletsa

Karolong ea bobeli ea sengoloa se buang ka li-simulators tsa sistimi ea komporo, ke tla tsoelapele ho bua ka mokhoa o bonolo oa selelekela mabapi le li-simulator tsa komporo, e leng mabapi le papali e felletseng ea sethala, eo hangata mosebelisi a kopanang le eona, hammoho le ka oache -mohlala oa oache le mesaletsa, tse atileng haholo ho li-circles tsa bahlahisi.

Li-simulator tsa litsamaiso tsa likhomphutha: simulator e tloaelehileng ea sethala se felletseng le e sa tsejoeng ka nako le mesaletsa

В karolo ea pele Ke buile ka seo li-simulators ka kakaretso li leng sona, hammoho le ka maemo a ho etsisa. Hona joale, ho itšetlehile ka tsebo eo, ke fana ka maikutlo a ho qoela hanyenyane 'me ke bue ka ketsiso e feletseng ea sethala, mokhoa oa ho bokella mesaletsa, seo u lokelang ho se etsa ka bona hamorao, hammoho le ho etsisa microarchitectural emulation oache-by-clock.

Simulator e felletseng ea sethala, kapa "Ha u le mong tšimong ha se mohlabani"

Haeba u batla ho ithuta ts'ebetso ea sesebelisoa se le seng, mohlala, karete ea marang-rang, kapa u ngole firmware kapa mokhanni oa sesebelisoa sena, sesebelisoa se joalo se ka etsisoa ka thoko. Leha ho le joalo, ho e sebelisa ka thoko ho lisebelisoa tse ling ha ho bonolo haholo. Ho tsamaisa mokhanni o tsamaellanang, o tla hloka processor e bohareng, memori, phihlello ea bese ea data, jj. Ho phaella moo, mokhanni o hloka mokhoa oa ho sebetsa (OS) le stack ea marang-rang ho sebetsa. Ho feta moo, ho ka hlokahala jenereithara ea pakete e arohaneng le seva sa karabo.

Sebapali sa sethala se felletseng se theha tikoloho ea ho tsamaisa software e felletseng, e kenyelletsang ntho e ngoe le e ngoe ho tloha BIOS le bootloader ho OS ka boeona le lits'ebetso tsa eona tse fapaneng, joalo ka stack e tšoanang ea marang-rang, bakhanni le lits'ebetso tsa boemo ba basebelisi. Ho etsa sena, e sebelisa mekhoa ea software ea lisebelisoa tse ngata tsa k'homphieutha: processor le memori, disk, lisebelisoa tsa ho kenya / lihlahisoa (keyboard, mouse, display), hammoho le karete ea marang-rang e tšoanang.

Ka tlase ke setšoantšo sa block sa chipset ea x58 e tsoang ho Intel. Sebapali sa komporo sa sethala se felletseng ka chipset ena se hloka ts'ebetsong ea lisebelisoa tse ngata tse thathamisitsoeng, ho kenyeletsoa le tse ka hare ho IOH (Input/Output Hub) le ICH (Input/Output Controller Hub), tse sa hlahisoang ka botlalo ho setšoantšo sa block. . Leha ho le joalo, joalo ka ha boikoetliso bo bontša, ha ho na lisebelisoa tse ngata tse sa sebelisoeng ke software eo re tla e tsamaisa. Mehlala ea lisebelisoa tse joalo ha e hloke ho etsoa.

Li-simulator tsa litsamaiso tsa likhomphutha: simulator e tloaelehileng ea sethala se felletseng le e sa tsejoeng ka nako le mesaletsa

Hangata, li-simulator tsa sethala se felletseng li kengoa maemong a thuto ea processor (ISA, bona ka tlase). sehlooho se fetileng). Sena se o lumella ho theha simulator ka boeona ka potlako le ka theko e tlase. Boemo ba ISA bo boetse bo molemo hobane bo lula bo le teng kapa bo sa fetohe, ho fapana le mohlala, boemo ba API / ABI, bo fetohang hangata. Ho phaella moo, ts'ebetsong boemong ba litaelo ho u lumella hore u tsamaise seo ho thoeng ke unmodified binary software, ke hore, ho tsamaisa khoutu e seng e hlophisitsoe ntle le liphetoho leha e le life, hantle feela joalokaha e sebelisoa ho hardware ea sebele. Ka mantsoe a mang, u ka etsa kopi ("lahla") ea hard drive ea hau, e hlalose e le setšoantšo sa mohlala ho simulator ea sethala se felletseng, le voila! - OS le mananeo a mang a kentsoe simulator ntle le liketso tse ling.

Tshebetso ea simulator

Li-simulator tsa litsamaiso tsa likhomphutha: simulator e tloaelehileng ea sethala se felletseng le e sa tsejoeng ka nako le mesaletsa

Joalokaha ho boletsoe ka holimo, mokhoa oa ho etsisa tsamaiso eohle, ke hore, lisebelisoa tsohle tsa eona, ke mosebetsi o fokolang. Haeba u boetse u kenya tšebetsong tsena tsohle ka mokhoa o qaqileng haholo, mohlala, microarchitectural kapa logic, joale ts'ebetso e tla lieha haholo. Empa boemo ba litaelo ke khetho e nepahetseng 'me e lumella OS le mananeo ho sebetsa ka lebelo le lekaneng hore mosebedisi a sebelisane le bona ka boiketlo.

Mona e ka ba ho loketseng ho ama sehlooho sa ts'ebetso ea simulator. Hangata e lekantsoe ka IPS (litaelo ka motsotsoana), ka ho hlaka ho MIPS (limilione tsa IPS), ke hore, palo ea litaelo tsa processor tse entsoeng ke simulator motsotsoana o le mong. Ka nako e ts'oanang, lebelo la papiso le lona le itšetlehile ka ts'ebetso ea tsamaiso eo papiso ka boeona e sebetsang ka eona. Ka hona, ho ka 'na ha e-ba ho nepahetseng haholoanyane ho bua ka "ho fokotseha" ha simulator ha ho bapisoa le tsamaiso ea pele.

Li-simulator tse atileng ka ho fetesisa tse fumanehang 'marakeng, joalo ka QEMU, VirtualBox kapa VmWare Workstation, li na le ts'ebetso e ntle. Ho kanna ha se hlokomelehe ho mosebelisi hore mosebetsi o ntse o tsoela pele ho simulator. Sena se etsahala ka lebaka la bokhoni bo khethehileng ba virtualization bo kentsoeng ho li-processor, li-algorithms tsa phetolelo ea binary le lintho tse ling tse khahlisang. Sena sohle ke sehlooho bakeng sa sengoloa se arohaneng, empa ka bokhuts'oane, virtualization ke karolo ea lisebelisoa tsa li-processor tsa sejoale-joale tse lumellang li-simulator hore li se ke tsa etsisa litaelo, empa li li romele bakeng sa ho etsoa ka kotloloho ho processor ea 'nete, haeba, ehlile, meralo ea meralo. simulator le processor li tšoana. Phetolelo ea binary ke phetolelo ea khoutu ea mochini oa baeti ho khoutu ea moamoheli le ts'ebetso e latelang ho processor ea 'nete. Ka lebaka leo, papiso e lieha hanyane, ka makhetlo a 5-10, 'me hangata e bile e matha ka lebelo le tšoanang le la tsamaiso ea sebele. Le hoja sena se susumetsoa ke lintlha tse ngata. Mohlala, haeba re batla ho etsisa sistimi e nang le li-processor tse 'maloa, lebelo le tla theoha hanghang ka makhetlo ana a' maloa. Ka lehlakoreng le leng, li-simulator tse kang Simics liphetolelong tsa morao-rao li tšehetsa li-multiprocessor host hardware 'me li tsamaisana hantle le li-cores tse etsisitsoeng holim'a li-cores tsa processor ea sebele.

Haeba re bua ka lebelo la ketsiso ea microarchitectural, joale hangata ke litaelo tse 'maloa tsa boholo, ka makhetlo a ka bang 1000-10000 butle ho feta ho bolaoa ka khomphuteng e tloaelehileng, ntle le ho etsisa. 'Me ts'ebetsong boemong ba lintlha tse utloahalang li lieha ka litaelo tse' maloa tsa boholo. Ka hona, FPGA e sebelisoa e le emulator boemong bona, e ka eketsang ts'ebetso haholo.

Kerafo e ka tlase e bonts'a ts'episo e lekantsoeng ea lebelo la papiso mabapi le lintlha tsa mohlala.

Li-simulator tsa litsamaiso tsa likhomphutha: simulator e tloaelehileng ea sethala se felletseng le e sa tsejoeng ka nako le mesaletsa

Ketsiso ya Beat-by-beat

Ho sa tsotellehe lebelo la bona le tlaase la ho bolaoa, li-simulators tsa microarchitectural li tloaelehile haholo. Ketsiso ea li-block tsa ka hare tsa processor ea hlokahala e le ho etsisa ka nepo nako ea ts'ebetso ea taeo ka 'ngoe. Ho se utloisisane ho ka 'na ha hlaha mona - ka mor'a tsohle, ho ka bonahala eka ke hobane'ng ha u sa hlophise nako ea ho phethahatsa taelo e' ngoe le e 'ngoe. Empa simulator e joalo e tla ba e sa nepahaleng haholo, kaha nako ea ts'ebetso ea taelo e tšoanang e ka fapana le pitso ho letsetsa.

Mohlala o bonolo ke taelo ea phihlello ea memori. Haeba sebaka sa memori se kopiloeng se fumaneha ka har'a cache, nako ea ts'ebetso e tla ba nyane. Haeba tlhahisoleseding ena e se ka har'a cache ("cache miss"), joale sena se tla eketsa haholo nako ea ho phethahatsa taelo. Kahoo, mohlala oa cache oa hlokahala bakeng sa papiso e nepahetseng. Leha ho le joalo, taba ha e felle feela ho mohlala oa cache. The processor e ke ke ea emela feela hore data e nkiloe mohopolong ha e le sieo ka har'a cache. Ho e-na le hoo, e tla qala ho phethahatsa litaelo tse latelang, e khetha tse sa itšetleheng ka sephetho sa ho bala ka hlooho. Sena ke seo ho thoeng ke ts'ebetso ea "out of order" (OOO, ts'ebetso e sa sebetseng), e hlokahalang ho fokotsa nako ea ho se sebetse ha processor. Ho etsa mohlala oa li-block tsa processor tse tsamaellanang ho tla thusa ho ela hloko sena sohle ha u bala nako ea ho phethahatsa litaelo. Har'a litaelo tsena, tse etsoang ha sephetho sa ho bala ho tsoa mohopolong se letetsoe, ts'ebetso ea ho tlola e nang le maemo e ka etsahala. Haeba sephetho sa boemo bo sa tsejoe hajoale, joale processor ha e emise hape, empa e etsa "khakanyo", e etsa lekala le nepahetseng mme e tsoela pele ho phethahatsa litaelo ho tloha sebakeng sa phetoho. Sebaka se joalo, se bitsoang "predicor" ea lekala, se tlameha ho kenngoa ts'ebetsong ho simulator ea microarchitectural.

Setšoantšo se ka tlase se bontša li-blocks tse ka sehloohong tsa processor, ha ho hlokahale ho e tseba, e bontšoa feela ho bontša ho rarahana ha ts'ebetsong ea microarchitectural.

Li-simulator tsa litsamaiso tsa likhomphutha: simulator e tloaelehileng ea sethala se felletseng le e sa tsejoeng ka nako le mesaletsa

Ts'ebetso ea li-blocks tsena kaofela ho processor ea 'nete e hokahanngoa ke matšoao a khethehileng a oache,' me ho etsahala se tšoanang mohlaleng. Simulator e joalo ea meralo e nyane e bitsoa cycle e nepahetseng. Morero oa eona o ka sehloohong ke ho bolela esale pele ka nepo ts'ebetso ea processor e ntseng e ntlafatsoa le / kapa ho bala nako ea ts'ebetso ea lenaneo le itseng, mohlala, benchmark. Haeba litekanyetso li le tlase ho feta kamoo ho hlokahalang, ho tla hlokahala ho fetola li-algorithms le li-processor blocks kapa ho ntlafatsa lenaneo.

Joalokaha ho bontšitsoe ka holimo, papiso ea oache ka nako e lieha haholo, ka hona e sebelisoa feela ha ho ithuta linako tse itseng tsa ts'ebetso ea lenaneo, moo ho hlokahalang ho fumana lebelo la sebele la ts'ebetso ea lenaneo le ho lekola ts'ebetso ea nako e tlang ea sesebelisoa seo. prototype e ntse e etsoa.

Tabeng ena, simulator e sebetsang e sebelisoa ho etsisa nako e setseng ea lenaneo. Motsoako ona oa tšebeliso o etsahala joang 'neteng? Ntlha ea pele, ho qalisoa simulator e sebetsang, eo ho eona OS le ntho e 'ngoe le e' ngoe e hlokahalang ho tsamaisa lenaneo le ntseng le ithutoa li kenngoa. Ntle le moo, ha re thahaselle OS ka boeona, kapa mehatong ea pele ea ho qala lenaneo, tlhophiso ea eona, jj. Leha ho le joalo, le rona re ke ke ra tlola likarolo tsena ebe hang-hang re fetela pele ho phethahatsa lenaneo ho tloha bohareng. Ka hona, mehato ena eohle ea pele e tsamaisoa ho simulator e sebetsang. Ka mor'a hore lenaneo le phethoe ho fihlela nakong eo re e thahasellang, re ka khetha lintho tse peli. U ka nkela mohlala sebaka ka mohlala oa oache ka potoloho 'me u tsoele pele ho phethahatsa. Mokhoa oa papiso o sebelisang khoutu e ka phethisoang (ke hore, lifaele tsa lenaneo tse hlophisitsoeng kamehla) o bitsoa ketsiso e tsamaisoang ke ts'ebetso. Ena ke khetho e atileng haholo ea papiso. Mokhoa o mong hape oa khoneha - ketsiso e tsamaisoang ke mohlala.

Ketsiso e thehiloeng ho mohlala

E na le mehato e 'meli. Ho sebelisa simulator e sebetsang kapa tsamaisong ea 'nete, ho bokelloa lethathamo la liketso tsa lenaneo ebe le ngoloa faeleng. Lenane lena le bitsoa trace. Ho latela hore na ho hlahlojoa eng, mohlala o ka kenyelletsa litaelo tse ka sebetsoang, liaterese tsa memori, linomoro tsa port, le tlhahisoleseling e sitisang.

Mohato o latelang ke ho "bapala" mohlala, ha simulator ea oache ka oache e bala mohlala mme e phethahatsa litaelo tsohle tse ngotsoeng ho eona. Qetellong, re fumana nako ea ts'ebetso ea karolo ena ea lenaneo, hammoho le litšobotsi tse fapaneng tsa ts'ebetso ena, mohlala, peresente ea ho otla ka har'a cache.

Tšobotsi ea bohlokoa ea ho sebetsa ka litsela ke determinism, ke hore, ka ho tsamaisa papiso ka mokhoa o hlalositsoeng ka holimo, khafetsa re hlahisa tatellano e tšoanang ea liketso. Sena se etsa hore ho khonehe, ka ho fetola liparamente tsa mohlala (cache, buffer le queue sizes) le ho sebelisa li-algorithms tse fapaneng tsa ka hare kapa ho li lokisa, ho ithuta hore na parameter e itseng e ama ts'ebetso ea tsamaiso joang le hore na ke khetho efe e fanang ka liphello tse ntle ka ho fetisisa. Sena sohle se ka etsoa ka mohlala oa sesebelisoa sa prototype pele o theha mofuta oa 'nete oa hardware.

Ho rarahana ha mokhoa ona ho itšetlehile ka tlhokahalo ea ho qala kopo le ho bokella mohlala, hammoho le boholo bo boholo ba faele ea trace. Melemo e kenyelletsa taba ea hore ho lekane ho etsisa karolo feela ea sesebelisoa kapa sethala sa thahasello, ha papiso ka ho phetha hangata e hloka mohlala o feletseng.

Kahoo, sehloohong sena re ile ra sheba likarolo tsa papiso e feletseng ea sethala, re buile ka lebelo la ts'ebetsong ka mekhahlelo e fapaneng, papiso ea oache ka potoloho le litsela. Sehloohong se latelang ke tla hlalosa maemo a ka sehloohong a ho sebelisa li-simulators, ka bobeli bakeng sa merero ea botho le ho tloha ponong ea tsoelo-pele ea lik'hamphani tse kholo.

Source: www.habr.com

Eketsa ka tlhaloso