Izilingisi zezinhlelo zamakhompiyutha: isifanisi esijwayelekile senkundla egcwele futhi esingaziwa ngokwewashi nemikhondo

Engxenyeni yesibili ye-athikili mayelana nezilingisi zesistimu yekhompyutha, ngizoqhubeka ngikhuluma ngendlela elula yesingeniso mayelana nezifanisi zekhompiyutha, okungukuthi mayelana nokulingiswa kwe-full-platform, okuvame ukuhlangana nomsebenzisi ovamile, kanye mayelana newashi-by. -imodeli yewashi nemikhondo, evame kakhulu emibuthanweni yonjiniyela.

Izilingisi zezinhlelo zamakhompiyutha: isifanisi esijwayelekile senkundla egcwele futhi esingaziwa ngokwewashi nemikhondo

Π’ ingxenye yokuqala Ngikhulume ngokuthi yiziphi izifanisi ngokujwayelekile, kanye namazinga wokulingisa. Manje, ngokusekelwe kulolo lwazi, ngiphakamisa ukucwilisa kancane futhi ngikhulume ngokulingiswa kwe-full-platform, indlela yokuqoqa iminonjana, yini okufanele uyenze ngayo kamuva, kanye nokulingisa kwewashi-by-clock microarchitectural.

Isifanisi seplathifomu ephelele, noma β€œUyedwa ensimini akalona iqhawe”

Uma ufuna ukufunda ukusebenza kwedivayisi ethile, isibonelo, ikhadi lenethiwekhi, noma ukubhala i-firmware noma umshayeli wale divayisi, idivayisi enjalo ingenziwa ngokuhlukana. Kodwa-ke, ukuyisebenzisa ngokuhlukana nayo yonke ingqalasizinda akulula kakhulu. Ukuze usebenzise umshayeli ohambisanayo, uzodinga iphrosesa emaphakathi, inkumbulo, ukufinyelela ibhasi ledatha, njll. Ngaphezu kwalokho, umshayeli udinga isistimu yokusebenza (OS) nesitaki senethiwekhi ukuze asebenze. Ngaphezu kwalokho, kungase kudingeke i-generator yephakethe ehlukile kanye neseva yokuphendula.

Isifanisi esigcwele inkundla sidala indawo yokusebenzisa isitaki sesofthiwe esiphelele, esihlanganisa yonke into kusukela ku-BIOS ne-bootloader kuya ku-OS ngokwayo kanye nezinhlelo zayo ezingaphansi ezihlukahlukene, njengesitaki senethiwekhi esifanayo, abashayeli, kanye nezinhlelo zokusebenza ezisezingeni lomsebenzisi. Ukwenza lokhu, kusebenzisa amamodeli esofthiwe emishini eminingi yekhompyutha: iprosesa nememori, idiski, amadivaysi okufaka/okukhiphayo (ikhibhodi, igundane, isibonisi), kanye nekhadi lenethiwekhi elifanayo.

Ngezansi kunomdwebo webhlokhi we-chipset ye-x58 evela ku-Intel. Isifanisi sekhompiyutha esigcwele ngokugcwele kule chipset sidinga ukusetshenziswa kwamadivayisi amaningi asohlwini, okuhlanganisa lawo angaphakathi kwe-IOH (Input/Output Hub) kanye ne-ICH (Input/Output Controller Hub), engavezwa imininingwane eningiliziwe kumdwebo webhulokhi. . Nakuba, njengoba umkhuba ubonisa, awekho amadivaysi amaningi angasetshenziswa isofthiwe esizoyisebenzisa. Amamodeli wamadivayisi anjalo awadingi ukudalwa.

Izilingisi zezinhlelo zamakhompiyutha: isifanisi esijwayelekile senkundla egcwele futhi esingaziwa ngokwewashi nemikhondo

Imvamisa, izifanisi zepulatifomu egcwele zisetshenziswa ezingeni lemiyalo yokucubungula (ISA, bheka ngezansi). isihloko esandulele). Lokhu kukuvumela ukuthi udale i-simulator ngokwayo ngokushesha futhi engabizi. Izinga le-ISA nalo lihle ngoba lihlala lilingana noma lingaphansi, ngokungafani, isibonelo, izinga le-API/ABI, elishintsha kaningi. Ngaphezu kwalokho, ukuqaliswa ezingeni lemiyalo kukuvumela ukuthi usebenzise isoftware kanambambili ebizwa ngokuthi engaguquki, okungukuthi, sebenzisa ikhodi ehlanganisiwe kakade ngaphandle kwezinguquko, njengoba nje isetshenziswa ku-hardware yangempela. Ngamanye amazwi, ungenza ikhophi (β€œlahla”) ye-hard drive yakho, uyicacise njengesithombe semodeli ku-simulator yesikhulumi esigcwele, futhi voila! - I-OS nezinye izinhlelo zilayishwa kusifanisi ngaphandle kwezenzo ezengeziwe.

Ukusebenza kwesifanisi

Izilingisi zezinhlelo zamakhompiyutha: isifanisi esijwayelekile senkundla egcwele futhi esingaziwa ngokwewashi nemikhondo

Njengoba kushiwo ngenhla, inqubo yokulingisa lonke uhlelo, okungukuthi, wonke amadivaysi ayo, iwumsebenzi ohamba kancane. Uma futhi usebenzisa konke lokhu ngezinga elinemininingwane eminingi, isibonelo, i-microarchitectural noma enengqondo, khona-ke ukubulawa kuzohamba kancane kakhulu. Kodwa izinga lokufundisa liyisinqumo esifanele futhi livumela i-OS nezinhlelo ukuthi zisebenzise ngesivinini esanele ukuze umsebenzisi axhumane nazo ngokunethezeka.

Lapha kungaba kuhle ukuthinta isihloko sokusebenza kwesifanisi. Ivamise ukukalwa nge-IPS (imiyalo ngomzuzwana), ngokuqondile kakhulu nge-MIPS (izigidi ze-IPS), okungukuthi, inani lemiyalo yokucubungula eyenziwa yisifanisi ngomzuzwana owodwa. Ngesikhathi esifanayo, ijubane lokulinganisa libuye lincike ekusebenzeni kwesistimu lapho ukulingisa ngokwayo kusebenza khona. Ngakho-ke, kungase kube okulungile kakhulu ukukhuluma "ngokwehliswa" kwesifanisi uma kuqhathaniswa nesistimu yokuqala.

Izifanisi ezivame kakhulu zenkundla egcwele emakethe, njenge-QEMU, i-VirtualBox noma i-VmWare Workstation, zisebenza kahle. Kungase kungabonakali nakumsebenzisi ukuthi umsebenzi oqhubekayo kusifanisi. Lokhu kwenzeka ngenxa yamakhono akhethekile okubona asetshenziswa kumaphrosesa, ama-algorithms okuhumusha kanambambili nezinye izinto ezithokozisayo. Konke lokhu kuyisihloko se-athikili ehlukile, kodwa ngamafuphi, i-virtualization isici se-hardware yamaprosesa anamuhla avumela ama-simulators ukuthi angalingisi imiyalelo, kodwa ukuwathumela ukuze asetshenziswe ngokuqondile kumprosesa wangempela, uma, kunjalo, izakhiwo ze-architectures. i-simulator kanye neprosesa ziyefana. Ukuhumusha kanambambili ukuhunyushwa kwekhodi yomshini wesivakashi ibe ikhodi yomsingathi kanye nokwenziwa okulandelayo kuphrosesa yangempela. Ngenxa yalokho, ukulingisa kuhamba kancane kuphela, izikhathi ezingu-5-10, futhi ngokuvamile ngisho nokugijima ngesivinini esifanayo nesistimu yangempela. Nakuba lokhu kuthonywa izici eziningi. Isibonelo, uma sifuna ukulingisa isistimu enamaphrosesa ayishumi nambili, isivinini sizokwehla ngokushesha ngalezi zikhathi eziyishumi nambili. Ngakolunye uhlangothi, izifanisi ezifana ne-Simics ezinguqulweni zakamuva zisekela ihadiwe yokusingatha i-multiprocessor futhi ifanisa ngempumelelo ama-cores alingisa kuma-cores we-processor yangempela.

Uma sikhuluma ngesivinini se-microarchitectural simulation, ngakho-ke ngokuvamile ama-oda amaningana wobukhulu, cishe izikhathi ezingu-1000-10000 ezihamba kancane kunokubulawa kukhompyutha evamile, ngaphandle kokulinganisa. Futhi ukusetshenziswa ezingeni lezinto ezinengqondo kuhamba kancane ngama-oda amaningana wobukhulu. Ngakho-ke, i-FPGA isetshenziswa njenge-emulator kuleli zinga, engakhuphula kakhulu ukusebenza.

Igrafu engezansi ibonisa ukuncika cishe kwesivinini sokulingisa emininingwaneni yemodeli.

Izilingisi zezinhlelo zamakhompiyutha: isifanisi esijwayelekile senkundla egcwele futhi esingaziwa ngokwewashi nemikhondo

Ukulingiswa kwe-beat-by-beat

Naphezu kwejubane labo eliphansi lokubulala, izifanisi ze-microarchitectural zivame kakhulu. Ukulingisa amabhulokhi angaphakathi wephrosesa kuyadingeka ukuze kulingise ngokunembile isikhathi sokwenza somyalelo ngamunye. Ukungaqondi kahle kungase kuphakame lapha - ngemva kwakho konke, kubonakala, kungani ungamane uhlele isikhathi sokwenza somyalelo ngamunye. Kodwa i-simulator enjalo izobe ingalungile kakhulu, ngoba isikhathi sokwenza somyalelo ofanayo singase sihluke ekubizeni ucingo.

Isibonelo esilula siwumyalo wokufinyelela inkumbulo. Uma indawo yememori eceliwe itholakala kunqolobane, isikhathi sokwenza sizoba sincane. Uma lolu lwazi lungekho kunqolobane (β€œi-cache miss”), khona-ke lokhu kuzokwandisa kakhulu isikhathi sokwenziwa komyalelo. Ngakho-ke, imodeli yenqolobane iyadingeka ukuze kufaniswe okunembile. Kodwa-ke, udaba alukhawulelwe kumodeli yenqolobane. Iphrosesa ngeke imane ilinde ukuthi idatha ibuyiswe kumemori lapho ingekho kunqolobane. Esikhundleni salokho, izoqala ukwenza imiyalo elandelayo, ikhethe leyo engancikile emphumeleni wokufunda ngekhanda. Lokhu kubizwa ngokuthi "ngaphandle kwe-oda" ukubulawa (OOO, ngaphandle kwe-oda), okudingekayo ukuze kuncishiswe isikhathi sokungenzi lutho se-processor. Ukwenza imodeli yamabhulokhi eprosesa ahambisanayo kuzosiza ukunaka konke lokhu lapho kubalwa isikhathi sokwenza imiyalelo. Phakathi kwale miyalo, eyenziwa ngenkathi kulindelwe umphumela wokufundwa kwenkumbulo, ukusebenza kwe-jump okunemibandela kungase kwenzeke. Uma umphumela wesimo ungaziwa okwamanje, khona-ke futhi iphrosesa ayiyeki ukubulawa, kodwa yenza "ukuqagela", yenza igatsha elifanele futhi iqhubeke nokukhipha imiyalelo ngokuqhubekayo kusukela endaweni yokuguquka. I-block enjalo, ebizwa ngokuthi i-predictor yegatsha, kufanele futhi isetshenziswe ku-simulator ye-microarchitectural.

Isithombe esingezansi sibonisa amabhlogo ayinhloko weprosesa, akudingekile ukukwazi, kuboniswa kuphela ukukhombisa ubunzima bokuqaliswa kwe-microarchitectural.

Izilingisi zezinhlelo zamakhompiyutha: isifanisi esijwayelekile senkundla egcwele futhi esingaziwa ngokwewashi nemikhondo

Ukusebenza kwawo wonke lawa mabhuloki kuphrosesa wangempela kuvumelaniswa namasiginali wewashi akhethekile, futhi okufanayo kwenzeka kumodeli. I-simulator ye-microarchitectural enjalo ibizwa ngokuthi umjikelezo onembile. Injongo yayo eyinhloko iwukubikezela ngokunembile ukusebenza kwephrosesa ethuthukiswayo kanye/noma ukubala isikhathi sokwenziwa sohlelo oluthile, isibonelo, ibhentshimakhi. Uma amanani ephansi kunalokho okudingekayo, kuzodingeka ukuthi uguqule ama-algorithms kanye namabhulokhi weprosesa noma ukwandise uhlelo.

Njengoba kuboniswe ngenhla, ukulingisa iwashi newashi kuhamba kancane, ngakho-ke kusetshenziswa kuphela lapho kufundwa izikhathi ezithile zokusebenza kohlelo, lapho kudingekile ukuthola isivinini sangempela sokwenziwa kohlelo nokuhlola ukusebenza kwesikhathi esizayo kwedivayisi i-prototype iyalingiswa.

Kulokhu, isifanisi esisebenzayo sisetshenziselwa ukulingisa isikhathi esisele sokusebenza sohlelo. Le nhlanganisela yokusebenzisa yenzeka kanjani empeleni? Okokuqala, i-simulator esebenzayo yethulwa, lapho i-OS nakho konke okudingekayo ukuqhuba uhlelo olufundwayo kulayishwa. Phela, asinasithakazelo ku-OS ngokwayo, noma ezigabeni zokuqala zokuqalisa uhlelo, ukucushwa kwalo, njll. Kodwa-ke, asikwazi futhi ukweqa lezi zingxenye futhi ngokushesha siqhubekele phambili ekusebenziseni uhlelo sisuka maphakathi. Ngakho-ke, zonke lezi zinyathelo zokuqala ziqhutshwa ku-simulator esebenzayo. Ngemva kokuba isimiso senziwe kwaze kwaba yilapho sesithakazelisa, singakhetha izinto ezimbili. Ungashintsha imodeli ngemodeli yewashi nomjikelezo futhi uqhubeke nokwenza. Imodi yokulingisa esebenzisa ikhodi esebenzisekayo (okungukuthi, amafayela ohlelo ahlanganisiwe ajwayelekile) ibizwa ngokuthi ukulingiswa okuqhutshwayo. Lena inketho yokulingisa evame kakhulu. Enye indlela nayo ingenzeka - ukulingiswa okuqhutshwa ukulandelela.

Ukulingisa okusekelwe ku-Trace

Iqukethe izinyathelo ezimbili. Kusetshenziswa isifanisi esisebenzayo noma ohlelweni lwangempela, ilogi yezenzo zohlelo iqoqwa futhi ibhalwe efayeleni. Lolugodo lubizwa ngokuthi umkhondo. Kuye ngokuthi yini ehlolwayo, umkhondo ungase uhlanganise imiyalelo esebenzisekayo, amakheli enkumbulo, izinombolo zembobo, kanye nolwazi oluphazamisayo.

Isinyathelo esilandelayo siwukuba "udlale" umkhondo, lapho isifanisi sewashi newashi sifunda umkhondo futhi senza yonke imiyalo ebhalwe kuyo. Ekugcineni, sithola isikhathi sokwenziwa salolu cezu lohlelo, kanye nezici ezihlukahlukene zale nqubo, isibonelo, iphesenti lokushaywa kunqolobane.

Isici esibalulekile sokusebenza ngokulandela umkhondo yi-determinism, okungukuthi, ngokusebenzisa ukulingisa ngendlela echazwe ngenhla, ngokuphindaphindiwe sikhiqiza ukulandelana okufanayo kwezenzo. Lokhu kwenza kube nokwenzeka, ngokushintsha amapharamitha emodeli (inqolobane, isilondolozi nosayizi bomugqa) nokusebenzisa ama-algorithm ahlukile angaphakathi noma ukuwashuna, ukufunda ukuthi ipharamitha ethile ikuthinta kanjani ukusebenza kwesistimu nokuthi iyiphi inketho enikeza imiphumela engcono kakhulu. Konke lokhu kungenziwa ngemodeli yedivayisi ye-prototype ngaphambi kokudala i-prototype yangempela yehadiwe.

Ubunkimbinkimbi bale ndlela busesidingweni sokuqala ukusebenzisa uhlelo bese uqoqa umkhondo, kanye nosayizi omkhulu wefayela lokulandela umkhondo. Izinzuzo zihlanganisa iqiniso lokuthi kwanele ukulingisa kuphela ingxenye yedivayisi noma inkundla yentshisekelo, kuyilapho ukulingisa ngokukhipha ngokuvamile kudinga imodeli ephelele.

Ngakho-ke, kulesi sihloko sibheke izici ze-full-platform simulation, sakhuluma ngesivinini sokuqaliswa emazingeni ahlukene, ukulingisa iwashi nomjikelezo kanye nemikhondo. Esihlokweni esilandelayo ngizochaza izimo eziyinhloko zokusebenzisa ama-simulators, kokubili ngezinhloso zomuntu siqu kanye nombono wokuthuthukiswa ezinkampanini ezinkulu.

Source: www.habr.com

Engeza amazwana