የኮምፒውተር ስርዓት ማስመሰያዎች፡- የሚታወቀው የሙሉ ፕላትፎርም አስመሳይ እና የማይታወቅ ባር እና መከታተያ

ስለ ኮምፒዩተር ሲስተም ሲሙሌተሮች በጽሁፉ ሁለተኛ ክፍል ስለ ኮምፕዩተር ሲሙሌተሮች ማለትም ስለ ሙሉ ፕላትፎርም ሲሙሌሽን፣ በአማካይ ተጠቃሚ ብዙ ጊዜ የሚያጋጥመውን፣ እንዲሁም በሰአት-በላይ ስለ ኮምፒዩተር ሲሙሌተሮች ቀለል ባለ የመግቢያ ቅፅ መናገሩን እቀጥላለሁ። በገንቢ ክበቦች ውስጥ በጣም የተለመዱ - የሰዓት ሞዴል እና ዱካዎች።

የኮምፒውተር ስርዓት ማስመሰያዎች፡- የሚታወቀው የሙሉ ፕላትፎርም አስመሳይ እና የማይታወቅ ባር እና መከታተያ

В የመጀመሪያው ክፍል። በአጠቃላይ ሲሙሌተሮች ምን እንደሆኑ፣ እንዲሁም ስለ ማስመሰል ደረጃዎች ተናገርኩ። አሁን በዛ እውቀት ላይ በመነሳት ስለ ሙሉ ፕላትፎርም ማስመሰል፣ ዱካዎችን እንዴት እንደሚሰበስብ፣ በኋላ ላይ ምን እንደሚደረግ፣ እንዲሁም በሰዓት በሰዓት የማይክሮ አርክቴክቸር ኢሜሌሽን ለመነጋገር ሀሳብ አቀርባለሁ።

ሙሉ የመሳሪያ ስርዓት አስመሳይ፣ ወይም “በሜዳ ውስጥ ብቻውን ተዋጊ አይደለም”

የአንድ የተወሰነ መሣሪያ አሠራር ለማጥናት ከፈለጉ ፣ ለምሳሌ ፣ የአውታረ መረብ ካርድ ፣ ወይም ለዚህ መሣሪያ firmware ወይም ሾፌር ይፃፉ ፣ ከዚያ እንዲህ ዓይነቱ መሣሪያ ለብቻው ሊመሰል ይችላል። ይሁን እንጂ ከሌሎች የመሠረተ ልማት አውታሮች ተነጥሎ መጠቀም በጣም ምቹ አይደለም. ተዛማጁን ሾፌር ለማሄድ ማዕከላዊ ፕሮሰሰር፣ ማህደረ ትውስታ፣ የውሂብ አውቶቡስ መዳረሻ ወዘተ ያስፈልግዎታል። በተጨማሪም አሽከርካሪው እንዲሰራ ኦፕሬቲንግ ሲስተም (OS) እና የኔትወርክ ቁልል ያስፈልገዋል። በተጨማሪም, የተለየ ፓኬት ጄኔሬተር እና ምላሽ አገልጋይ ሊያስፈልግ ይችላል.

የሙሉ ፕላትፎርም ሲሙሌተር የተሟላ የሶፍትዌር ቁልል ለማስኬድ ምቹ ሁኔታን ይፈጥራል፣ ይህም ከ BIOS እና ቡት ጫኚ ጀምሮ እስከ ኦኤስ እራሱ እና የተለያዩ ስርአቶቹ፣ እንደ አንድ አይነት የአውታረ መረብ ቁልል፣ ሾፌሮች እና የተጠቃሚ ደረጃ አፕሊኬሽኖች ያሉ ሁሉንም ያካትታል። ይህንን ለማድረግ የአብዛኛዎቹ የኮምፒዩተር መሳሪያዎች የሶፍትዌር ሞዴሎችን ይተገብራል-ፕሮሰሰር እና ማህደረ ትውስታ ፣ ዲስክ ፣ የግቤት / ውፅዓት መሣሪያዎች (ቁልፍ ሰሌዳ ፣ አይጥ ፣ ማሳያ) እንዲሁም ተመሳሳይ የአውታረ መረብ ካርድ።

ከዚህ በታች የ x58 ቺፕሴት ከ Intel የማገጃ ዲያግራም አለ። በዚህ ቺፕሴት ላይ ባለ ሙሉ ፕላትፎርም የኮምፒውተር ሲሙሌተር በብሎክ ዲያግራም ላይ በዝርዝር ያልተገለፁትን በ IOH (Input/Output Hub) እና ICH (Input/Output Controller Hub) ውስጥ ያሉትን ጨምሮ አብዛኛዎቹ የተዘረዘሩትን መሳሪያዎች መተግበርን ይጠይቃል። . ምንም እንኳን በተግባር እንደሚያሳየው እኛ የምንሰራው ሶፍትዌር የማይጠቀሙባቸው መሳሪያዎች ብዙ አይደሉም። እንደነዚህ ያሉ መሳሪያዎች ሞዴሎች መፈጠር አያስፈልጋቸውም.

የኮምፒውተር ስርዓት ማስመሰያዎች፡- የሚታወቀው የሙሉ ፕላትፎርም አስመሳይ እና የማይታወቅ ባር እና መከታተያ

አብዛኛውን ጊዜ የሙሉ ፕላትፎርም ማስመሰያዎች በአቀነባባሪ መመሪያ ደረጃ (ISA፣ ከታች ይመልከቱ) ይተገበራሉ። ቀዳሚ ጽሑፍ). ይህ አስመሳዩን ራሱ በአንፃራዊ ፍጥነት እና ርካሽ እንዲፈጥሩ ያስችልዎታል። የISA ደረጃ ጥሩ ነው ምክንያቱም ብዙ ወይም ያነሰ ቋሚ ሆኖ ስለሚቆይ፣ ለምሳሌ ከ API/ABI ደረጃ በተለየ፣ ብዙ ጊዜ የሚለዋወጥ። በተጨማሪም በመመሪያው ደረጃ መተግበር ያልተቀየረ ሁለትዮሽ ሶፍትዌር ተብሎ የሚጠራውን ማለትም በእውነተኛ ሃርድዌር ላይ ጥቅም ላይ እንደሚውል ቀድሞውንም የተቀናጀ ኮድን ያለ ምንም ለውጥ ያሂዱ። በሌላ አነጋገር የሃርድ ድራይቭዎን ቅጂ ("መጣል") ማድረግ ይችላሉ, ለሞዴል ሙሉ ፕላትፎርም አስመሳይ ምስል አድርገው ይግለጹ እና ቮይላ! - ስርዓተ ክወናው እና ሌሎች ፕሮግራሞች ያለ ተጨማሪ እርምጃዎች በሲሙሌተር ውስጥ ተጭነዋል።

አስመሳይ አፈጻጸም

የኮምፒውተር ስርዓት ማስመሰያዎች፡- የሚታወቀው የሙሉ ፕላትፎርም አስመሳይ እና የማይታወቅ ባር እና መከታተያ

ከላይ እንደተገለፀው አጠቃላይ ስርዓቱን ማለትም ሁሉንም መሳሪያዎቹን የማስመሰል ሂደት በጣም ቀርፋፋ ስራ ነው። ይህንን ሁሉ በዝርዝር ደረጃ ለምሳሌ ማይክሮአርክቴክቸር ወይም ሎጂካዊ በሆነ ደረጃ ተግባራዊ ካደረጉት አፈፃፀም በጣም ቀርፋፋ ይሆናል። ነገር ግን የመመሪያው ደረጃ ተገቢ ምርጫ ነው እና ኦኤስ እና ፕሮግራሞቹ ተጠቃሚው ከእነሱ ጋር በምቾት እንዲገናኝ በበቂ ፍጥነት እንዲሰሩ ያስችላቸዋል።

እዚህ የሲሙሌተር አፈጻጸምን ርዕስ መንካት ተገቢ ይሆናል። ብዙውን ጊዜ የሚለካው በአይፒኤስ (በሴኮንድ መመሪያዎች) ነው፣ በይበልጥ በትክክል በ MIPS (ሚሊዮኖች አይፒኤስ)፣ ማለትም፣ በአንድ ሰከንድ ውስጥ በሲሙሌተሩ የሚፈፀሙ የአቀነባባሪ መመሪያዎች ብዛት። በተመሳሳይ ጊዜ የማስመሰያው ፍጥነት እንዲሁ በራሱ በሚሠራበት የስርዓት አፈፃፀም ላይ የተመሠረተ ነው። ስለዚህ, ከመጀመሪያው ስርዓት ጋር ሲነጻጸር ስለ "ሲሙሌተር" "ቀዝቃዛ" ማውራት የበለጠ ትክክል ሊሆን ይችላል.

እንደ QEMU፣ VirtualBox ወይም VmWare Workstation ያሉ በገበያ ላይ በጣም የተለመዱት የሙሉ ፕላትፎርም ማስመሰያዎች ጥሩ አፈጻጸም አላቸው። በሲሙሌተሩ ውስጥ ስራ እየተሰራ መሆኑ ለተጠቃሚው እንኳን ላይታይ ይችላል። ይህ የሚከሰተው በአቀነባባሪዎች ፣ በሁለትዮሽ የትርጉም ስልተ ቀመሮች እና ሌሎች አስደሳች ነገሮች ውስጥ ለተተገበሩ ልዩ የቨርችዋል ችሎታዎች ምስጋና ይግባው። ይህ ሁሉ ለተለየ መጣጥፍ ርዕስ ነው ፣ ግን በአጭሩ ፣ ቨርቹዋል የዘመናዊ ፕሮሰሰር ሃርድዌር ባህሪ ነው ፣ አስመሳዮች መመሪያዎችን እንዳይመስሉ ያስችላቸዋል ፣ ግን ለአፈፃፀም በቀጥታ ወደ እውነተኛ ፕሮሰሰር እንዲልኩ ያስችላቸዋል ፣ በእርግጥ ፣ የስነ-ህንፃዎች ከሆነ። አስመሳይ እና ፕሮሰሰር ተመሳሳይ ናቸው። የሁለትዮሽ ትርጉም የእንግዳ ማሽን ኮድ ወደ አስተናጋጅ ኮድ መተርጎም እና በእውነተኛ ፕሮሰሰር ላይ ቀጣይ አፈፃፀም ነው። በውጤቱም, ማስመሰል በትንሹ ቀርፋፋ, 5-10 ጊዜ, እና ብዙ ጊዜ እንኳን ከእውነተኛው ስርዓት ጋር በተመሳሳይ ፍጥነት ይሰራል. ምንም እንኳን ይህ በብዙ ምክንያቶች ተጽዕኖ ቢኖረውም. ለምሳሌ ፣ ስርዓትን ከብዙ ደርዘን ፕሮሰሰር ጋር መምሰል ከፈለግን ፍጥነቱ ወዲያውኑ በእነዚህ በርካታ ደርዘን ጊዜዎች ይወርዳል። በሌላ በኩል፣ እንደ ሲሚክስ ያሉ የቅርብ ጊዜ ስሪቶች ውስጥ ያሉ አስመሳይዎች ባለብዙ ፕሮሰሰር አስተናጋጅ ሃርድዌርን ይደግፋሉ እና የተመሰለውን ኮሮች በእውነተኛ ፕሮሰሰር ኮርሞች ላይ በትክክል ያስተካክላሉ።

ስለ ማይክሮአርክቴክቸር የማስመሰል ፍጥነት ከተነጋገርን ፣ ከዚያ ብዙውን ጊዜ ብዙ ትዕዛዞች ነው ፣ በመደበኛ ኮምፒተር ላይ ከመገደሉ ከ 1000-10000 ጊዜ ያህል ቀርፋፋ ፣ ያለ ማስመሰል። እና በአመክንዮአዊ አካላት ደረጃ ላይ ያሉ አተገባበር በበርካታ የክብደት ትዕዛዞች ቀርፋፋ ናቸው። ስለዚህ, FPGA በዚህ ደረጃ እንደ ኢሙሌተር ጥቅም ላይ ይውላል, ይህም አፈፃፀሙን በእጅጉ ይጨምራል.

ከታች ያለው ግራፍ በአምሳያው ዝርዝር ላይ ያለውን የማስመሰል ፍጥነት ግምታዊ ጥገኛ ያሳያል።

የኮምፒውተር ስርዓት ማስመሰያዎች፡- የሚታወቀው የሙሉ ፕላትፎርም አስመሳይ እና የማይታወቅ ባር እና መከታተያ

ምት-በ-ምት ማስመሰል

አነስተኛ የማስፈጸሚያ ፍጥነት ቢኖራቸውም, የማይክሮአርክቴክቸር አስመሳይዎች በጣም የተለመዱ ናቸው. የእያንዳንዱን መመሪያ የማስፈጸሚያ ጊዜ በትክክል ለማስመሰል የማቀነባበሪያውን የውስጥ ብሎኮች ማስመሰል አስፈላጊ ነው። እዚህ አለመግባባት ሊፈጠር ይችላል - ለነገሩ ፣ ለምን ለእያንዳንዱ መመሪያ የአፈፃፀም ጊዜን ለምን አላዘጋጁም ። ነገር ግን ተመሳሳይ መመሪያ የማስፈጸሚያ ጊዜ ከጥሪ ጥሪ ሊለያይ ስለሚችል እንዲህ ዓይነቱ አስመሳይ በጣም የተሳሳተ ይሆናል።

በጣም ቀላሉ ምሳሌ የማህደረ ትውስታ መዳረሻ መመሪያ ነው. የተጠየቀው የማህደረ ትውስታ መገኛ ቦታ በመሸጎጫው ውስጥ የሚገኝ ከሆነ የማስፈጸሚያ ጊዜ አነስተኛ ይሆናል። ይህ መረጃ በመሸጎጫው ውስጥ ካልሆነ ("cache miss"), ይህ የመመሪያውን የአፈፃፀም ጊዜ በእጅጉ ይጨምራል. ስለዚህ, ለትክክለኛው ማስመሰል የመሸጎጫ ሞዴል ያስፈልጋል. ይሁን እንጂ ጉዳዩ በመሸጎጫ ሞዴል ላይ ብቻ የተወሰነ አይደለም. ፕሮሰሰሩ በቀላሉ መረጃው ከመሸጎጫው ውስጥ በማይገኝበት ጊዜ ከማህደረ ትውስታ እስኪወጣ ድረስ አይጠብቅም። ይልቁንም በማስታወስ ላይ በማንበብ ውጤት ላይ ያልተመሰረቱትን በመምረጥ ቀጣዩን መመሪያዎችን መፈጸም ይጀምራል. ይህ የፕሮሰሰር የስራ ፈት ጊዜን ለመቀነስ አስፈላጊ የሆነው “ከትእዛዝ ውጭ” ተብሎ የሚጠራው (OOO፣ ከትዕዛዝ ውጪ) ነው። ተጓዳኝ ፕሮሰሰር ብሎኮችን መቅረጽ የመመሪያውን የአፈፃፀም ጊዜ ሲያሰሉ ይህንን ሁሉ ግምት ውስጥ ለማስገባት ይረዳል ። ከነዚህ መመሪያዎች መካከል፣ ከማህደረ ትውስታ የማንበብ ውጤት በሚጠበቅበት ጊዜ የሚፈፀም፣ ሁኔታዊ የሆነ የመዝለል ስራ ሊከሰት ይችላል። የሁኔታው ውጤት በአሁኑ ጊዜ የማይታወቅ ከሆነ ፣ እንደገና ፕሮሰሰሩ መፈጸሙን አያቆምም ፣ ግን “ግምት” ያደርጋል ፣ ተገቢውን ቅርንጫፍ ያከናውናል እና ከሽግግሩ ቦታ መመሪያዎችን በንቃት መፈጸሙን ይቀጥላል። የቅርንጫፍ ትንበያ ተብሎ የሚጠራው እንዲህ ዓይነቱ እገዳ በማይክሮአርክቴክቸር ሲሙሌተር ውስጥ መተግበር አለበት።

ከታች ያለው ስዕል የማቀነባበሪያውን ዋና ዋና ብሎኮች ያሳያል, እሱን ማወቅ አስፈላጊ አይደለም, የሚታየው የማይክሮአርክቴክቸር አተገባበርን ውስብስብነት ለማሳየት ብቻ ነው.

የኮምፒውተር ስርዓት ማስመሰያዎች፡- የሚታወቀው የሙሉ ፕላትፎርም አስመሳይ እና የማይታወቅ ባር እና መከታተያ

በእውነተኛ ፕሮሰሰር ውስጥ የእነዚህ ሁሉ ብሎኮች አሠራር በልዩ የሰዓት ምልክቶች ይመሳሰላል ፣ እና በአምሳያው ውስጥ ተመሳሳይ ነው። እንዲህ ዓይነቱ የማይክሮአርክቴክቸር አስመሳይ ዑደት ትክክለኛ ይባላል። ዋናው ዓላማው እየተገነባ ያለውን የአቀነባባሪውን አፈጻጸም በትክክል መተንበይ እና/ወይም የአንድ የተወሰነ ፕሮግራም አፈጻጸም ጊዜን ማስላት ነው፣ ለምሳሌ፣ መለኪያ። እሴቶቹ ከሚፈለገው ያነሱ ከሆኑ ስልተ ቀመሮችን እና ፕሮሰሰር ብሎኮችን ማሻሻል ወይም ፕሮግራሙን ማመቻቸት አስፈላጊ ነው።

ከላይ እንደሚታየው የሰዓት በ-ሰዓት ማስመሰል በጣም ቀርፋፋ ነው ፣ ስለሆነም የፕሮግራሙን አንዳንድ ጊዜዎች ሲያጠና ብቻ ጥቅም ላይ የሚውለው የፕሮግራሙን አፈፃፀም ትክክለኛ ፍጥነት ለማወቅ እና የወደፊቱን የመሳሪያውን አፈፃፀም ለመገምገም በሚያስፈልግበት ጊዜ ነው ። ፕሮቶታይፕ እየተሰራ ነው።

በዚህ አጋጣሚ የፕሮግራሙን የቀረውን የሩጫ ጊዜ ለማስመሰል ተግባራዊ የሆነ ሲሙሌተር ጥቅም ላይ ይውላል። ይህ የአጠቃቀም ጥምረት በእውነቱ እንዴት ይከሰታል? በመጀመሪያ ስርዓተ ክወናው እና በጥናት ላይ ያለውን ፕሮግራም ለማስኬድ አስፈላጊ የሆኑ ነገሮች ሁሉ የሚጫኑበት ተግባራዊ አስመሳይ ተጀምሯል። ደግሞም ፣ ለስርዓተ ክወናው ራሱ ፍላጎት የለንም ፣ ወይም ፕሮግራሙን ለመጀመር የመጀመሪያ ደረጃዎች ፣ አወቃቀሩ ፣ ወዘተ. ሆኖም፣ እነዚህን ክፍሎች መዝለል አንችልም እና ወዲያውኑ ፕሮግራሙን ከመሃል ወደ መፈጸም እንቀጥላለን። ስለዚህ እነዚህ ሁሉ የመጀመሪያ ደረጃዎች የሚከናወኑት በተግባራዊ አስመሳይ ላይ ነው። ፕሮግራሙ ለእኛ ፍላጎት ባለው ቅጽበት ከተከናወነ በኋላ ሁለት አማራጮች ሊኖሩ ይችላሉ። ሞዴሉን በሰዓት-ዑደት ሞዴል መተካት እና መፈጸሙን መቀጠል ይችላሉ። ተፈፃሚ ኮድ (ይህም በመደበኛነት የተጠናቀሩ የፕሮግራም ፋይሎች) የሚጠቀመው የማስመሰል ሁነታ የማስፈጸሚያ ድራይቭ ሲሙሌሽን ይባላል። ይህ በጣም የተለመደው የማስመሰል አማራጭ ነው. ሌላ አቀራረብም ይቻላል - በዱካ የሚመራ ማስመሰል.

በክትትል ላይ የተመሰረተ ማስመሰል

ሁለት ደረጃዎችን ያካትታል. ተግባራዊ ሲሙሌተር በመጠቀም ወይም በእውነተኛ ስርዓት የፕሮግራም ድርጊቶች ምዝግብ ማስታወሻ ተሰብስቦ ወደ ፋይል ይጻፋል። ይህ ምዝግብ ማስታወሻ ይባላል. እየተመረመረ ባለው ላይ በመመስረት ዱካው ሊተገበሩ የሚችሉ መመሪያዎችን ፣ የማስታወሻ አድራሻዎችን ፣ የወደብ ቁጥሮችን እና መረጃን የሚያቋርጥ ሊሆን ይችላል።

የሚቀጥለው እርምጃ ዱካውን "መጫወት" ነው, የሰዓት በሰዓት አስመሳይ ፈለጉን ሲያነብ እና በውስጡ የተፃፉትን ሁሉንም መመሪያዎች ሲፈጽም. በመጨረሻ ፣ የዚህ የፕሮግራሙ ቁራጭ የማስፈጸሚያ ጊዜን እና እንዲሁም የዚህ ሂደት የተለያዩ ባህሪዎችን ፣ ለምሳሌ በመሸጎጫ ውስጥ የመምታት መቶኛ እናገኛለን ።

ከዱካዎች ጋር አብሮ የመስራት አስፈላጊ ባህሪ ቆራጥነት ነው, ማለትም, ማስመሰልን ከላይ በተገለፀው መንገድ በማስኬድ, በተደጋጋሚ ተመሳሳይ ድርጊቶችን እናባዛለን. ይህም የሞዴል መለኪያዎችን (መሸጎጫ፣ መሸጎጫ እና የወረፋ መጠን) በመቀየር እና የተለያዩ የውስጥ ስልተ ቀመሮችን በመጠቀም ወይም እነሱን በማስተካከል አንድ የተወሰነ ግቤት እንዴት የስርዓት አፈፃፀም ላይ ተጽዕኖ እንደሚያሳድር እና የትኛው አማራጭ የተሻለ ውጤት እንደሚሰጥ ለማጥናት ያስችላል። ይህ ሁሉ ትክክለኛ የሃርድዌር ፕሮቶታይፕ ከመፈጠሩ በፊት በፕሮቶታይፕ መሳሪያ ሞዴል ሊከናወን ይችላል.

የዚህ አሰራር ውስብስብነት በመጀመሪያ አፕሊኬሽኑን ማስኬድ እና ዱካውን ለመሰብሰብ እና እንዲሁም የመከታተያ ፋይሉ ትልቅ መጠን ያለው አስፈላጊነት ላይ ነው። ጥቅሞቹ የመሳሪያውን ክፍል ወይም የፍላጎት መድረክን ብቻ ለማስመሰል በቂ ነው, በአፈፃፀም ማስመሰል ብዙውን ጊዜ የተሟላ ሞዴል ይጠይቃል.

ስለዚህ, በዚህ ጽሑፍ ውስጥ የሙሉ-ፕላትፎርም ማስመሰል ባህሪያትን ተመልክተናል, በተለያዩ ደረጃዎች ስለ ትግበራዎች ፍጥነት, በሰዓት-ዑደት ማስመሰል እና ዱካዎች ተነጋገርን. በሚቀጥለው ርዕስ ውስጥ ለግል ዓላማዎች እና በትልልቅ ኩባንያዎች ውስጥ ካለው የእድገት እይታ አንጻር ሲሙሌተሮችን ለመጠቀም ዋና ዋና ሁኔታዎችን እገልጻለሁ ።

ምንጭ: hab.com

አስተያየት ያክሉ