ڪمپيوٽر سسٽم جا سموليٽر: هڪ واقف مڪمل پليٽ فارم سميوليٽر ۽ اڻڄاتل گھڙي جي طرف ۽ نشان

ڪمپيوٽر سسٽم سميوليٽر جي باري ۾ مضمون جي ٻئي حصي ۾، مان ڪمپيوٽر جي سميليٽرز جي باري ۾ هڪ سادي تعارفي شڪل ۾ ڳالهائڻ جاري رکندو، يعني مڪمل پليٽ فارم سميوليشن بابت، جيڪو سراسري استعمال ڪندڙ اڪثر ڪري ٿو، ۽ انهي سان گڏ ڪلاڪ جي حساب سان. -ڪلاڪ ماڊل ۽ نشان، جيڪي ڊولپر حلقن ۾ وڌيڪ عام آهن.

ڪمپيوٽر سسٽم جا سموليٽر: هڪ واقف مڪمل پليٽ فارم سميوليٽر ۽ اڻڄاتل گھڙي جي طرف ۽ نشان

В پهريون حصو مون ان بابت ڳالهايو ته ڇا سموليٽر عام طور تي آهن، انهي سان گڏ تخليق جي سطح بابت. ھاڻي، انھيءَ ڄاڻ جي بنياد تي، مان ٿورڙو اونڌو ڪرڻ جو مشورو ڏيان ٿو ۽ مڪمل پليٽ فارم سميوليشن جي باري ۾ ڳالھايان ٿو، نشان ڪيئن گڏ ڪجي، انھن سان بعد ۾ ڇا ڪجي، ۽ گھڙي گھڙي گھڙيءَ مائڪرو آرڪيٽيڪچرل ايموليشن بابت.

مڪمل پليٽ فارم سمائيٽر، يا "فيلڊ ۾ اڪيلو جنگجو ناهي"

جيڪڏهن توهان هڪ مخصوص ڊوائيس جي آپريشن جو مطالعو ڪرڻ چاهيو ٿا، مثال طور، هڪ نيٽ ورڪ ڪارڊ، يا هن ڊوائيس لاء فرمائيندڙ يا ڊرائيور لکڻ، پوء اهڙي ڊوائيس الڳ الڳ ڪري سگهجي ٿو. تنهن هوندي به، ان کي استعمال ڪرڻ ۾ اڪيلائي ۾ باقي زيربنا کان تمام آسان نه آهي. لاڳاپيل ڊرائيور کي هلائڻ لاء، توهان کي مرڪزي پروسيسر، ميموري، ڊيٽا بس تائين رسائي، وغيره جي ضرورت پوندي. ان کان سواء، ڊرائيور کي ڪم ڪرڻ لاء هڪ آپريٽنگ سسٽم (OS) ۽ هڪ نيٽ ورڪ اسٽيڪ جي ضرورت آهي. ان کان علاوه، هڪ الڳ پيڪيٽ جنريٽر ۽ جوابي سرور گهربل هجي.

هڪ مڪمل پليٽ فارم سموليٽر هڪ مڪمل سافٽ ويئر اسٽيڪ کي هلائڻ لاءِ ماحول پيدا ڪري ٿو، جنهن ۾ BIOS ۽ بوٽ لوڊر کان وٺي OS تائين سڀ ڪجهه شامل آهي ۽ ان جا مختلف سبسسٽم، جهڙوڪ هڪ ئي نيٽ ورڪ اسٽيڪ، ڊرائيور، ۽ صارف-سطح جي ايپليڪيشنون. هن کي ڪرڻ لاء، اهو اڪثر ڪمپيوٽر ڊوائيسز جا سافٽ ويئر ماڊل لاڳو ڪري ٿو: پروسيسر ۽ ميموري، ڊسڪ، ان پٽ / آئوٽ پٽ ڊوائيسز (ڪي بورڊ، ماؤس، ڊسپلي)، انهي سان گڏ ساڳيو نيٽ ورڪ ڪارڊ.

هيٺ ڏنل هڪ بلاڪ آريگرام آهي x58 چپ سيٽ جو Intel کان. هن chipset تي هڪ مڪمل پليٽ فارم ڪمپيوٽر سميوليٽر جي ضرورت آهي اڪثر فهرست ڏنل ڊوائيسز تي عمل ڪرڻ، جن ۾ IOH (Input/Output Hub) ۽ ICH (Input/Output Controller Hub) جي اندر شامل آهن، جن کي بلاڪ ڊاگرام تي تفصيل سان نه ڏيکاريو ويو آهي. . جيتوڻيڪ، جيئن مشق ڏيکاري ٿو، اتي ڪيترائي ڊوائيس نه آهن جيڪي سافٽ ويئر پاران استعمال نه ڪيا ويا آهن جيڪي اسان هلائڻ وارا آهيون. اهڙين ڊوائيسز جا ماڊل ٺاهڻ جي ضرورت ناهي.

ڪمپيوٽر سسٽم جا سموليٽر: هڪ واقف مڪمل پليٽ فارم سميوليٽر ۽ اڻڄاتل گھڙي جي طرف ۽ نشان

گهڻو ڪري، مڪمل پليٽ فارم سموليٽر پروسيسر جي هدايتن جي سطح تي لاڳو ڪيا ويا آهن (ISA، هيٺ ڏسو). پويون مضمون). هي توهان کي سمائيٽر ٺاهڻ جي اجازت ڏئي ٿو پاڻ نسبتا جلدي ۽ سستي سان. ISA سطح پڻ سٺي آهي ڇاڪاڻ ته اهو گهٽ يا گهٽ مسلسل رهي ٿو، برعڪس، مثال طور، API/ABI سطح، جيڪو گهڻو ڪري تبديل ڪري ٿو. ان کان علاوه، هدايتن جي سطح تي عمل درآمد توهان کي نام نہاد غير تبديل ٿيل بائنري سافٽ ويئر هلائڻ جي اجازت ڏئي ٿو، يعني، اڳ ۾ ئي مرتب ٿيل ڪوڊ بغير ڪنهن تبديلي جي، بلڪل ائين جيئن اهو حقيقي هارڊويئر تي استعمال ڪيو ويندو آهي. ٻين لفظن ۾، توهان پنهنجي هارڊ ڊرائيو جي هڪ ڪاپي ("ڊمپ") ٺاهي سگهو ٿا، ان کي هڪ تصوير جي طور تي بيان ڪريو هڪ مڪمل پليٽ فارم سمائيٽر ۾ ماڊل لاء، ۽ وائيلا! - او ايس ۽ ٻيا پروگرام بغير ڪنهن اضافي عملن جي سمائيٽر ۾ لوڊ ڪيا ويا آهن.

سمائيٽر ڪارڪردگي

ڪمپيوٽر سسٽم جا سموليٽر: هڪ واقف مڪمل پليٽ فارم سميوليٽر ۽ اڻڄاتل گھڙي جي طرف ۽ نشان

جيئن مٿي ذڪر ڪيو ويو آهي، سڄي سسٽم کي تخليق ڪرڻ جو عمل، اهو آهي، ان جي سڀني ڊوائيسز، بلڪه سست عمل آهي. جيڪڏهن توهان اهو سڀ ڪجهه تمام تفصيلي سطح تي لاڳو ڪيو، مثال طور، مائڪرو آرڪيٽيڪچرل يا منطقي، پوء عمل انتهائي سست ٿي ويندو. پر هدايتن جي سطح هڪ مناسب انتخاب آهي ۽ او ايس ۽ پروگرامن کي اجازت ڏئي ٿو ته رفتار تي عمل ڪرڻ لاءِ ڪافي صارف لاءِ انهن سان آرام سان رابطو ڪرڻ لاءِ.

هتي اهو مناسب ٿيندو ته simulator ڪارڪردگي جي موضوع تي رابطو ڪرڻ لاء. اهو عام طور تي ماپيو ويندو آهي IPS (هدايتون في سيڪنڊ)، وڌيڪ واضح طور تي MIPS (مليون IPS) ۾، اهو آهي، پروسيسر جي هدايتن جو تعداد جيڪو هڪ سيڪنڊ ۾ سميليٽر طرفان عمل ڪيو ويو آهي. ساڳي ئي وقت، تخليق جي رفتار پڻ سسٽم جي ڪارڪردگي تي منحصر آهي جنهن تي تخليق پاڻ کي هلندو آهي. تنهن ڪري، اهو وڌيڪ صحيح ٿي سگهي ٿو ته اصل سسٽم جي مقابلي ۾ سمائيٽر جي "سست" بابت ڳالهائڻ.

مارڪيٽ تي سڀ کان وڌيڪ عام مڪمل پليٽ فارم سموليٽر، جهڙوڪ QEMU، VirtualBox يا VmWare ورڪ اسٽيشن، سٺي ڪارڪردگي آهي. اهو شايد صارف کي نوٽيس نه ٿي سگھي ٿو ته ڪم سميليٽر ۾ هلي رهيو آهي. اهو ٿئي ٿو خاص ورچوئلائيزيشن صلاحيتن جي مهرباني جنهن تي عمل ڪيو ويو پروسيسرز، بائنري ترجمي جي الگورتھم ۽ ٻين دلچسپ شين ۾. هي سڀ هڪ الڳ مضمون لاءِ هڪ موضوع آهي، پر مختصر ۾، ورچوئلائيزيشن جديد پروسيسرز جي هڪ هارڊويئر خاصيت آهي، جيڪا سميليٽرز کي هدايتن جي نقل نه ڪرڻ جي اجازت ڏئي ٿي، پر انهن کي عمل ڪرڻ لاءِ سڌو سنئون حقيقي پروسيسر ڏانهن موڪلڻ جي اجازت ڏئي ٿي، جيڪڏهن، يقينا، آرڪيٽيڪچرز. simulator ۽ پروسيسر هڪجهڙا آهن. بائنري ترجمو مهمان مشين ڪوڊ جو ترجمو آهي ميزبان ڪوڊ ۾ ۽ بعد ۾ عمل هڪ حقيقي پروسيسر تي. نتيجي طور، تخليق صرف ٿورڙي سست، 5-10 ڀيرا، ۽ اڪثر ڪري حقيقي سسٽم وانگر ساڳئي رفتار تي هلندو آهي. جيتوڻيڪ اهو ڪيترن ئي عنصر کان متاثر آهي. مثال طور، جيڪڏهن اسان هڪ سسٽم کي ڪيترن ئي درجن پروسيسرز سان گڏ ڪرڻ چاهيون ٿا، ته رفتار انهن ڪيترن ئي درجن جي ڀيٽ ۾ فوري طور تي گهٽجي ويندي. ٻئي طرف، جديد نسخن ۾ سميڪس وانگر سمائيٽر ملٽي پروسيسر ميزبان هارڊويئر کي سپورٽ ڪن ٿا ۽ مؤثر طريقي سان ٺهيل ڪور کي حقيقي پروسيسر جي ڪور تي متوازي ڪن ٿا.

جيڪڏهن اسان مائڪرو آرڪيٽيڪچرل تخليق جي رفتار جي باري ۾ ڳالهايون ٿا، ته اهو عام طور تي ڪيترن ئي حڪمن جي شدت آهي، هڪ باقاعده ڪمپيوٽر تي عمل ڪرڻ کان 1000-10000 ڀيرا سست آهي، بغير تخليق جي. ۽ منطقي عنصرن جي سطح تي عمل درآمد ڪيترن ئي حڪمن جي شدت سان سست هوندا آهن. تنهن ڪري، هڪ FPGA هن سطح تي هڪ ايموليٽر طور استعمال ڪيو ويندو آهي، جيڪو ڪارڪردگي وڌائي سگھي ٿو.

هيٺ ڏنل گراف ماڊل تفصيل تي تخليق جي رفتار جي تقريبن انحصار ڏيکاري ٿو.

ڪمپيوٽر سسٽم جا سموليٽر: هڪ واقف مڪمل پليٽ فارم سميوليٽر ۽ اڻڄاتل گھڙي جي طرف ۽ نشان

بيٽ بيٽ سموليشن

ان جي گھٽ رفتار جي باوجود، microarchitectural simulators ڪافي عام آهن. پروسيسر جي اندروني بلاڪ جي تخليق ضروري آهي ته هر هدايت جي عمل جي وقت کي درست ڪرڻ لاء. هتي غلط فهمي پيدا ٿي سگهي ٿي - آخرڪار، اهو لڳي ٿو، ڇو نه صرف هر هدايت جي عمل جي وقت کي پروگرام ڪيو وڃي. پر اهڙي سمائيٽر بلڪل غلط ٿيندو، ڇاڪاڻ ته ساڳئي هدايتن تي عمل ڪرڻ جو وقت ڪال کان ڪال کان مختلف ٿي سگهي ٿو.

سادو مثال هڪ ميموري رسائي جي هدايت آهي. جيڪڏهن درخواست ڪيل ميموري مقام ڪيش ۾ موجود آهي، پوء عمل جو وقت گهٽ ۾ گهٽ ٿيندو. جيڪڏهن اها معلومات ڪيش ۾ نه آهي ("ڪيش مس")، پوء اهو تمام گهڻو وڌائيندو هدايت جي عمل جي وقت ۾. اهڙيء طرح، صحيح تخليق لاء ڪيش ماڊل گهربل آهي. بهرحال، معاملو ڪيش ماڊل تائين محدود ناهي. پروسيسر صرف ميموري مان ڊيٽا حاصل ڪرڻ جو انتظار نه ڪندو جڏهن اهو ڪيش ۾ نه هوندو. ان جي بدران، اهو ايندڙ هدايتن تي عمل ڪرڻ شروع ڪندو، انهن کي چونڊيو جيڪي ياداشت کان پڙهڻ جي نتيجي تي منحصر نه هجن. اهو نام نهاد ”آئوٽ آف آرڊر“ عمل آهي (OOO، آئوٽ آف آرڊر ايگزيڪيوشن)، پروسيسر جي بيڪار وقت کي گهٽائڻ لاءِ ضروري آهي. لاڳاپيل پروسيسر بلاڪ کي ماڊل ڪرڻ ۾ مدد ملندي ان سڀني کي حساب ۾ رکڻ ۾ جڏهن هدايتن جي عمل جي وقت جي حساب سان. انهن هدايتن جي وچ ۾، عمل ڪيو ويو جڏهن ياداشت مان پڙهڻ جو نتيجو انتظار ڪيو وڃي، هڪ مشروط جمپ آپريشن ٿي سگهي ٿي. جيڪڏهن حالت جو نتيجو هن وقت اڻڄاتل آهي، ته پوء پروسيسر ٻيهر عمل کي روڪي نه ٿو، پر "انداز" ڪري ٿو، مناسب شاخ انجام ڏئي ٿو ۽ منتقلي جي نقطي کان هدايتن تي عمل ڪرڻ جاري رکي ٿو. اهڙو بلاڪ، جنهن کي برانچ اڳڪٿي ڪندڙ سڏيو ويندو آهي، لازمي طور تي مائڪرو آرڪيٽيڪچرل سميلٽر ۾ لاڳو ڪيو وڃي.

هيٺ ڏنل تصوير پروسيسر جي مکيه بلاڪ کي ڏيکاري ٿو، ان کي ڄاڻڻ ضروري ناهي، اهو صرف ڏيکاريو ويو آهي ته microarchitectural عملدرآمد جي پيچيدگي کي ڏيکاري.

ڪمپيوٽر سسٽم جا سموليٽر: هڪ واقف مڪمل پليٽ فارم سميوليٽر ۽ اڻڄاتل گھڙي جي طرف ۽ نشان

حقيقي پروسيسر ۾ انهن سڀني بلاڪ جي آپريشن خاص ڪلاڪ سگنلن سان هم وقت سازي ڪئي وئي آهي، ۽ اهو ساڳيو ماڊل ۾ ٿئي ٿو. اهڙي هڪ microarchitectural simulator سڏيو ويندو آهي چڪر صحيح. ان جو بنيادي مقصد صحيح طور تي پروسيسر جي ڪارڪردگي جو اندازو لڳائڻ ۽ / يا مخصوص پروگرام جي عمل جي وقت جي حساب سان، مثال طور، هڪ معيار. جيڪڏهن قيمتون گهربل کان گهٽ آهن، پوء اهو ضروري آهي ته الگورتھم ۽ پروسيسر بلاڪ کي تبديل ڪرڻ يا پروگرام کي بهتر ڪرڻ لاء.

جيئن مٿي ڏيکاريل آهي، گھڙيءَ کان گھڙيءَ جو سموليشن تمام سست هوندو آهي، تنهن ڪري اهو صرف ان وقت استعمال ڪيو ويندو آهي جڏهن ڪنهن پروگرام جي عمل جي ڪجهه لمحن جو مطالعو ڪيو ويندو آهي، جتي اهو ضروري هوندو آهي ته پروگرام جي عمل جي حقيقي رفتار معلوم ڪرڻ ۽ ڊوائيس جي مستقبل جي ڪارڪردگيءَ جو اندازو لڳايو وڃي. prototype simulated ٿي رهيو آهي.

انهي صورت ۾، هڪ فنڪشنل سمائيٽر استعمال ڪيو ويندو آهي پروگرام جي باقي هلندڙ وقت کي ترتيب ڏيڻ لاء. استعمال جو هي ميلاپ حقيقت ۾ ڪيئن ٿئي ٿو؟ پهريون، فنڪشنل سمائيٽر شروع ڪيو ويو آهي، جنهن تي او ايس ۽ هر شي ضروري آهي ته مطالعي هيٺ پروگرام کي هلائڻ لاء لوڊ ڪيو ويو آهي. آخرڪار، اسان کي او ايس ۾ دلچسپي نه آهي، ۽ نه ئي پروگرام شروع ڪرڻ جي شروعاتي مرحلن ۾، ان جي ترتيب، وغيره. بهرحال، اسان انهن حصن کي به نه ٿا ڇڏي سگھون ۽ فوري طور تي وچين کان پروگرام کي عمل ڪرڻ لاء اڳتي وڌو. تنهن ڪري، اهي سڀ ابتدائي مرحلا هڪ فنڪشنل سميلٽر تي هلائي رهيا آهن. پروگرام کان پوء اسان جي دلچسپي جي لمحن تي عمل ڪيو ويو آهي، ٻه اختيار ممڪن آهن. توھان ماڊل کي ھڪڙي گھڙي سائيڪل واري ماڊل سان تبديل ڪري سگھو ٿا ۽ عمل جاري رکو. سموليشن موڊ جيڪو ايگزيڪيوٽو ڪوڊ استعمال ڪري ٿو (يعني عام مرتب ٿيل پروگرام فائلون) ان کي ايگزيڪيوشن ڊرين سموليشن چئبو آهي. هي سڀ کان وڌيڪ عام تخليق اختيار آهي. هڪ ٻيو طريقو پڻ ممڪن آهي - ٽريڪ ٿيل تخليق.

ٽريس جي بنياد تي تخليق

اهو ٻن مرحلن تي مشتمل آهي. هڪ فنڪشنل سمائيٽر استعمال ڪندي يا حقيقي سسٽم تي، پروگرام جي عملن جو هڪ لاگ گڏ ڪيو ويو آهي ۽ فائل ڏانهن لکيو ويو آهي. هن لاگ کي هڪ نشان سڏيو ويندو آهي. ان جي بنياد تي جيڪو جانچيو پيو وڃي، ٽريس ۾ شامل ٿي سگھي ٿو قابل عمل هدايتون، ميموري ايڊريس، پورٽ نمبر، ۽ مداخلت واري معلومات.

اڳيون قدم آهي ”راندڻ“ ٽريس کي، جڏهن ڪلاڪ ڪلاڪ سميوليٽر ٽريس کي پڙهي ٿو ۽ ان ۾ لکيل سڀني هدايتن تي عمل ڪري ٿو. آخر ۾، اسان پروگرام جي هن ٽڪڙي جي عمل جو وقت حاصل ڪندا آهيون، انهي سان گڏ هن پروسيس جي مختلف خاصيتون، مثال طور، ڪيش ۾ هٽ جو سيڪڙو.

نشانين سان ڪم ڪرڻ جي هڪ اهم خصوصيت عزم (Determinism) آهي، يعني مٿي بيان ڪيل طريقي سان سميوليشن کي هلائڻ سان، بار بار اسان عملن جي ساڳئي تسلسل کي ٻيهر پيدا ڪندا آهيون. اهو ممڪن بڻائي ٿو، ماڊل پيٽرولر (ڪيش، بفر ۽ قطار جي سائز) کي تبديل ڪندي ۽ مختلف اندروني الگورتھم استعمال ڪندي يا انهن کي ٽيوننگ ڪندي، اهو مطالعو ڪرڻ لاء ته ڪيئن هڪ خاص پيٽرولر سسٽم جي ڪارڪردگي کي متاثر ڪري ٿو ۽ ڪهڙو اختيار بهترين نتيجا ڏئي ٿو. اهو سڀ ڪجهه ڪري سگهجي ٿو هڪ پروٽوٽائپ ڊيوائس ماڊل سان هڪ حقيقي هارڊويئر پروٽوٽائپ ٺاهڻ کان اڳ.

هن طريقي جي پيچيدگي پهرين ايپليڪيشن کي هلائڻ ۽ ٽريس گڏ ڪرڻ جي ضرورت آهي، انهي سان گڏ ٽريس فائل جي وڏي سائيز. فائدن ۾ اها حقيقت شامل آهي ته اهو صرف ڊوائيس جو حصو يا دلچسپي جي پليٽ فارم کي نقل ڪرڻ لاء ڪافي آهي، جڏهن ته عمل جي ذريعي تخليق عام طور تي مڪمل ماڊل جي ضرورت هوندي آهي.

تنهن ڪري، هن آرٽيڪل ۾ اسان مڪمل پليٽ فارم تخليق جي خاصيتن تي غور ڪيو، مختلف سطحن تي عملدرآمد جي رفتار، ڪلاڪ جي سائيڪل جي تخليق ۽ نشانن بابت ڳالهايو. ايندڙ آرٽيڪل ۾ آئون سموليٽر استعمال ڪرڻ لاء بنيادي منظرنامو بيان ڪندس، ٻنهي ذاتي مقصدن لاء ۽ وڏي ڪمپنين ۾ ترقي جي نقطي نظر کان.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو