د کمپیوټر سیسټمونو سمیلیټرونه: یو پیژندل شوی بشپړ پلیټ فارم سمیلیټر او د ساعت په لور نامعلوم او نښې

د کمپیوټر سیسټم سمیلیټرونو په اړه د مقالې په دویمه برخه کې، زه به د کمپیوټر سمیلیټرونو په اړه په ساده تعارفي بڼه خبرې وکړم، د بیلګې په توګه د بشپړ پلیټ فارم سمول په اړه، کوم چې اوسط کاروونکي ډیری وختونه ورسره مخ کیږي، او همدارنګه د ساعت په اړه. - د ساعت ماډل او نښې، کوم چې د پراختیا کونکي په حلقو کې ډیر عام دي.

د کمپیوټر سیسټمونو سمیلیټرونه: یو پیژندل شوی بشپړ پلیټ فارم سمیلیټر او د ساعت په لور نامعلوم او نښې

В لومړی برخه ما د دې په اړه خبرې وکړې چې سمیلیټرونه په عموم کې دي، او همدارنګه د سمولو کچې په اړه. اوس ، د دې پوهې پراساس ، زه وړاندیز کوم چې لږ ژور ډوب کړم او د بشپړ پلیټ فارم سمولیشن په اړه وغږیږم ، د نښې راټولولو څرنګوالی ، وروسته له دوی سره څه باید وشي ، او همدارنګه د ساعت په واسطه د مایکرو آرکیټیکچر ایمولیشن په اړه.

بشپړ پلیټ فارم سمیلیټر، یا "یوازې په میدان کې یو جنګیالی نه دی"

که تاسو غواړئ د یوې ځانګړې وسیلې عملیات مطالعه کړئ، د بیلګې په توګه، د شبکې کارت، یا د دې وسیلې لپاره فرم ویئر یا ډرایور ولیکئ، نو دا ډول وسیله په جلا توګه سمبال کیدی شي. په هرصورت، د نورو زیربناوو څخه په انزوا کې کارول خورا اسانه ندي. د اړونده ډرایور چلولو لپاره ، تاسو به مرکزي پروسیسر ، حافظې ، ډیټا بس ته لاسرسی او داسې نورو ته اړتیا ولرئ. برسېره پردې، چلوونکی د فعالیت لپاره عملیاتي سیسټم (OS) او د شبکې سټیک ته اړتیا لري. برسېره پردې، یو جلا پاکټ جنراتور او د ځواب سرور ته اړتیا لیدل کیدی شي.

د بشپړ پلیټ فارم سمیلیټر د بشپړ سافټویر سټیک چلولو لپاره چاپیریال رامینځته کوي ، چې پکې د BIOS او بوټلوډر څخه OS ته هرڅه او د هغې مختلف فرعي سیسټمونه شامل دي ، لکه د ورته شبکې سټیک ، ډرایورونه ، او د کارونکي کچې غوښتنلیکونه. د دې کولو لپاره، دا د ډیری کمپیوټر وسیلو سافټویر ماډلونه پلي کوي: پروسیسر او حافظه، ډیسک، ان پټ/آؤټ پټ وسایل (کیبورډ، ماوس، نندارې)، او همدارنګه د ورته شبکې کارت.

لاندې د انټیل څخه د x58 چپسیټ بلاک ډیاګرام دی. په دې چپسیټ کې د بشپړ پلیټ فارم کمپیوټر سمیلیټر د ډیری لیست شوي وسیلو پلي کولو ته اړتیا لري ، پشمول د IOH دننه هغه (ان پټ/آؤټ پټ هب) او ICH (ان پټ/آؤټ پټ کنټرولر هب) ، کوم چې د بلاک ډیاګرام کې په تفصیل سره ندي ښودل شوي. . که څه هم، لکه څنګه چې تمرین ښیي، ډیری وسایل شتون نلري چې د سافټویر لخوا نه کارول کیږي چې موږ یې چلوو. د داسې وسایلو موډلونو ته اړتیا نشته چې جوړ شي.

د کمپیوټر سیسټمونو سمیلیټرونه: یو پیژندل شوی بشپړ پلیټ فارم سمیلیټر او د ساعت په لور نامعلوم او نښې

ډیری وختونه، د بشپړ پلیټ فارم سمیلیټرونه د پروسیسر لارښوونې په کچه پلي کیږي (ISA، لاندې وګورئ). پخوانۍ مقاله). دا تاسو ته اجازه درکوي چې سمیلیټر پخپله نسبتا چټک او ارزانه جوړ کړئ. د ISA کچه هم ښه ده ځکه چې دا ډیر یا لږ ثابت پاتې کیږي، برعکس، د بیلګې په توګه، د API/ABI کچه، چې ډیر ځله بدلیږي. برسېره پردې، د لارښوونې په کچه پلي کول تاسو ته اجازه درکوي چې نامتو نه بدلیدونکي بائنری سافټویر چل کړئ، دا دی، پرته له کوم بدلون څخه دمخه تالیف شوی کوډ پرمخ وړئ، لکه څنګه چې دا په ریښتینې هارډویر کې کارول کیږي. په بل عبارت، تاسو کولی شئ د خپل هارډ ډرایو یوه کاپي ("ډمپ") جوړه کړئ، دا په بشپړ پلیټ فارم سمیلیټر کې د ماډل لپاره د عکس په توګه مشخص کړئ، او وایلا! - OS او نور برنامې پرته له کوم اضافي عمل څخه په سمیلیټر کې بار شوي.

د سیمال فعالیت

د کمپیوټر سیسټمونو سمیلیټرونه: یو پیژندل شوی بشپړ پلیټ فارم سمیلیټر او د ساعت په لور نامعلوم او نښې

لکه څنګه چې پورته یادونه وشوه، د ټول سیسټم د سمولو پروسه، دا د هغې ټول وسایل، یو ډیر سست کار دی. که تاسو دا ټول په خورا مفصله کچه پلي کړئ ، د مثال په توګه ، مایکرو آرکیټیکچرل یا منطقي ، نو اجرا کول به خورا ورو شي. مګر د لارښوونې کچه یو مناسب انتخاب دی او OS او برنامو ته اجازه ورکوي چې په کافي سرعت سره اجرا کړي چې کارونکي یې په آرامۍ سره اړیکه ونیسي.

دلته دا به مناسبه وي چې د سمیلیټر فعالیت موضوع باندې اړیکه ونیسئ. دا معمولا په IPS (هره ثانیه کې لارښوونې) کې اندازه کیږي، په دقیق ډول په MIPS (میلیون IPS) کې، دا د پروسیسر لارښوونو شمیر چې د سمیلیټر لخوا په یوه ثانیه کې اجرا کیږي. په ورته وخت کې ، د سمولیشن سرعت هم د سیسټم په فعالیت پورې اړه لري په کوم کې چې سمول پخپله پرمخ ځي. نو ځکه، دا ممکن د اصلي سیسټم په پرتله د سمیلیټر "سست" په اړه خبرې کول خورا سم وي.

په بازار کې ترټولو عام بشپړ پلیټ فارم سمیلیټرونه ، لکه QEMU ، VirtualBox یا VmWare ورک سټیشن ، ښه فعالیت لري. دا ممکن حتی کارونکي ته د پام وړ نه وي چې کار په سمیلیټر کې روان دی. دا پیښیږي د ځانګړي مجازی کولو وړتیاو څخه مننه چې په پروسیسرونو کې پلي شوي ، بائنری ژباړې الګوریتمونه او نور په زړه پوري شیان. دا ټول د یوې جلا مقالې لپاره موضوع ده، مګر په لنډه توګه، مجازی کول د عصري پروسیسرونو د هارډویر ځانګړتیا ده چې سمیلیټرانو ته اجازه ورکوي چې لارښوونې تقلید نه کړي، مګر دوی مستقیم پروسیسر ته د اجرا کولو لپاره لیږل کیږي، که البته، د معمارۍ. سمیلیټر او پروسیسر ورته دي. بائنری ژباړه د میلمه ماشین کوډ کوربه کوډ ته ژباړه او وروسته په ریښتیني پروسیسر کې اجرا کول دي. د پایلې په توګه، سمول یوازې یو څه ورو دی، 5-10 ځله، او ډیری وختونه حتی د اصلي سیسټم په څیر په ورته سرعت سره ځي. که څه هم دا د ډیری فکتورونو لخوا اغیزمن کیږي. د مثال په توګه، که موږ غواړو یو سیسټم د څو درجن پروسیسرونو سره سمبال کړو، نو سرعت به سمدلاسه د دې څو درجنونو لخوا راټیټ شي. له بلې خوا ، په وروستي نسخو کې د سمیکس په څیر سمیلیټرونه د ملټي پروسیسر کوربه هارډویر ملاتړ کوي او په مؤثره توګه د ریښتیني پروسیسر کورونو ته سمول شوي کورونه موازي کوي.

که موږ د مایکرو آرکیټیکچر سمولیشن سرعت په اړه وغږیږو ، نو دا معمولا د شدت څو امرونه دي ، پرته له سمولیشن څخه په منظم کمپیوټر کې د اجرا کولو په پرتله شاوخوا 1000-10000 ځله ورو. او د منطقي عناصرو په کچه پلي کول د شدت د څو امرونو لخوا ورو دي. له همدې امله ، FPGA پدې کچه د ایمولیټر په توګه کارول کیږي ، کوم چې کولی شي د پام وړ فعالیت ډیر کړي.

لاندې ګراف د ماډل توضیحاتو باندې د سمولو سرعت نږدې انحصار ښیې.

د کمپیوټر سیسټمونو سمیلیټرونه: یو پیژندل شوی بشپړ پلیټ فارم سمیلیټر او د ساعت په لور نامعلوم او نښې

د وهلو په واسطه د وهلو سمول

د دوی د ټیټ اجرا کولو سرعت سره سره ، مایکرو آرکیټیکچر سمیلیټرونه خورا عام دي. د پروسیسر د داخلي بلاکونو سمول اړین دي د دې لپاره چې د هرې لارښوونې د اجرا کولو وخت په سمه توګه سمبال کړي. دلته غلط فهم رامینځته کیدی شي - په هرصورت ، داسې ښکاري چې ولې په ساده ډول د هرې لارښوونې لپاره د اجرا کولو وخت نه برنامه کوئ. مګر دا ډول سمیلیټر به خورا غلط وي ، ځکه چې د ورته لارښوونې اجرا کولو وخت ممکن د تلیفون څخه بل ته توپیر ولري.

ترټولو ساده مثال د حافظې لاسرسي لارښود دی. که چیرې غوښتل شوي حافظه ځای په کیچ کې شتون ولري ، نو د اجرا کولو وخت به لږترلږه وي. که دا معلومات په زیرمه کې نه وي ("کیچ مس")، نو دا به د لارښوونې د اجرا کولو وخت ډیر کړي. په دې توګه، د دقیق سمولو لپاره د کیچ ماډل ته اړتیا ده. په هرصورت، مسله د کیچ ماډل پورې محدود نه ده. پروسیسر به په ساده ډول د حافظې څخه د معلوماتو ترلاسه کولو انتظار ونه کړي کله چې دا په زیرمه کې نه وي. پرځای یې، دا به د راتلونکو لارښوونو پلي کول پیل کړي، هغه غوره کړي چې د حافظې څخه د لوستلو په پایله پورې اړه نلري. دا تش په نامه "د نظم څخه بهر" اجرا کول دي (OOO، د ترتیب څخه بهر)، د پروسیسر بې کاره وخت کمولو لپاره اړین دی. د اړونده پروسیسر بلاکونو ماډل کول به دا ټول په پام کې نیولو کې مرسته وکړي کله چې د لارښوونو اجرا کولو وخت محاسبه کړئ. د دې لارښوونو په مینځ کې، په داسې حال کې چې د حافظې څخه د لوستلو پایلې ته انتظار کیږي، د مشروط کود عملیات ممکن واقع شي. که په اوس وخت کې د حالت پایله معلومه نه وي، نو بیا پروسیسر د اجرا کولو مخه نه نیسي، مګر "اټکل" کوي، مناسبه څانګه ترسره کوي او د لیږد له نقطې څخه په فعاله توګه لارښوونې اجرا کولو ته دوام ورکوي. دا ډول بلاک، چې د څانګې وړاندوینه کونکی بلل کیږي، باید په مایکرو آرکیټیکچر سمیلیټر کې هم پلي شي.

لاندې انځور د پروسیسر اصلي بلاکونه ښیې، دا اړینه نده چې پوه شي، دا یوازې د مایکرو آرکیټیکچر پلي کولو پیچلتیا ښودلو لپاره ښودل شوي.

د کمپیوټر سیسټمونو سمیلیټرونه: یو پیژندل شوی بشپړ پلیټ فارم سمیلیټر او د ساعت په لور نامعلوم او نښې

په ریښتیني پروسیسر کې د دې ټولو بلاکونو عملیات د ځانګړي ساعت سیګنالونو لخوا همغږي کیږي ، او ورته په ماډل کې پیښیږي. دا ډول مایکرو آرکیټیکچر سمیلیټر د سایکل درست په نوم یادیږي. د دې اصلي هدف دا دی چې د پروسیسر فعالیت په سمه توګه وړاندوینه وکړي او / یا د ځانګړي برنامې اجرا کولو وخت محاسبه کړي ، د مثال په توګه ، یو بنچمارک. که ارزښتونه د اړتیا څخه ټیټ وي، نو دا به اړین وي چې د الګوریتمونو او پروسیسر بلاکونو تعدیل یا برنامه اصلاح کړي.

لکه څنګه چې پورته ښودل شوي، د ساعت په واسطه د ساعت سمول خورا ورو دی، نو دا یوازې هغه وخت کارول کیږي کله چې د برنامه عملیات ځینې شیبې مطالعه کړي، چیرې چې دا اړینه ده چې د پروګرام اجرا کولو ریښتینې سرعت ومومئ او د هغه وسیلې راتلونکي فعالیت ارزونه وکړئ چې پروټوټایپ سمول کیږي.

په دې حالت کې، یو فعال سمیلیټر کارول کیږي ترڅو د پروګرام پاتې چلولو وخت سمولو لپاره. د کارولو دا ترکیب په واقعیت کې څنګه پیښیږي؟ لومړی ، فعال سمیلیټر په لاره اچول شوی ، په کوم کې چې OS او هرڅه چې د مطالعې لاندې برنامې چلولو لپاره اړین دي بار شوي. په هرصورت ، موږ پخپله OS کې علاقه نه لرو ، او نه هم د برنامه پیل کولو په لومړیو مرحلو کې ، د دې ترتیب کول او داسې نور. په هرصورت، موږ نشو کولی دا برخې پریږدو او سمدلاسه له مینځ څخه د برنامه اجرا کولو ته لاړ شو. له همدې امله، دا ټول لومړني مرحلې په فعال سمیلیټر کې پرمخ وړل کیږي. وروسته له دې چې برنامه زموږ لپاره د علاقې وړ شیبې ته اجرا شوه ، دوه اختیارونه ممکن دي. تاسو کولی شئ ماډل د ساعت په واسطه د سایکل ماډل سره بدل کړئ او اجرا کولو ته دوام ورکړئ. د سمولیشن حالت چې د اجرا وړ کوډ کاروي (یعنې منظم ترتیب شوي برنامه فایلونه) د اعدام چلونکي سمولیشن په نوم یادیږي. دا د سمولو ترټولو عام اختیار دی. بله لاره هم ممکنه ده - trace driven simulation.

د ټریس پر بنسټ سمول

دا د دوو مرحلو څخه جوړه ده. د فعال سمیلیټر په کارولو سره یا په ریښتیني سیسټم کې ، د برنامو عملونو لاګ راټولیږي او فایل ته لیکل کیږي. دا لاګ د ټریس په نوم یادیږي. د هغه څه پورې اړه لري چې معاینه کیږي، په ټریس کې ممکن د اجرا وړ لارښوونې، د حافظې پتې، د پورټ شمیرې، او د مداخلې معلومات شامل وي.

بل ګام د ټریس "لوبې" کول دي ، کله چې د ساعت په واسطه سمیلیټر ټریس لوستل کیږي او په هغې کې لیکل شوي ټولې لارښوونې اجرا کوي. په پای کې، موږ د پروګرام د دې برخې د اجرا کولو وخت ترلاسه کوو، او همدارنګه د دې پروسې مختلف ځانګړتیاوې، د بیلګې په توګه، په کیچ کې د هټ فیصده.

د نښو سره د کار کولو یوه مهمه ځانګړنه ډیټرمینیزم دی، هغه دا دی چې د پورته بیان شوي طریقې سره د سمولو په چلولو سره، موږ د عملونو ورته ترتیب تکرار کوو. دا دا ممکنه کوي، د ماډل پیرامیټونو بدلولو (کیچ، بفر او قطار اندازې) او د مختلف داخلي الګوریتمونو په کارولو سره یا د دوی په کارولو سره، دا مطالعه کړئ چې څنګه یو ځانګړی پیرامیټر د سیسټم فعالیت اغیزه کوي او کوم انتخاب غوره پایلې ورکوي. دا ټول د اصلي هارډویر پروټوټایپ رامینځته کولو دمخه د پروټوټایپ وسیلې ماډل سره ترسره کیدی شي.

د دې طریقې پیچلتیا د لومړي ځل لپاره د غوښتنلیک چلولو او ټریس راټولولو ته اړتیا لري، په بیله بیا د ټریس فایل لویه اندازه. په ګټو کې دا حقیقت شامل دی چې دا یوازې د وسیلې برخې یا د ګټو پلیټ فارم سمولو لپاره کافي دي ، پداسې حال کې چې د اجرا کولو سره سمول معمولا بشپړ ماډل ته اړتیا لري.

نو، په دې مقاله کې موږ د بشپړ پلیټ فارم سمولو ځانګړتیاوو ته کتنه وکړه، په مختلفو کچو کې د پلي کولو سرعت، د ساعت په واسطه د سایکل سمولو او نښې په اړه خبرې وکړې. په راتلونکې مقاله کې به زه د سمیلیټرونو کارولو اصلي سناریوګانې تشریح کړم، دواړه د شخصي موخو لپاره او په لویو شرکتونو کې د پراختیا له نظره.

سرچینه: www.habr.com

Add a comment