انواع شبیه سازی

شبیه سازی نسخه‌ای از بعضی وسایل حقیقی یا موقعیت‌های کاری است. شبیه سازی تلاش دارد تا بعضی جنبه‌های رفتاری یک سیستم فیزیکی یا انتزاعی را به وسیله رفتار سیستم دیگری نمایش دهد. شبیه سازی در بسیاری از متون شامل مدل سازی سیستم‌های طبیعی و سیتم‌های انسانی استفاده می‌شود. برای به دست آوردن بینش نسبت به کارکرد این سیستم‌ها در تکنولوژی و مهندسی ایمنی که هدف، آزمون بعضی سناریوهای عملی در دنیای واقعی است از شبیه سازی استفاده می‌شود. در شبیه سازی با استفاده از یک شبیه ساز یا وسیله دیگری در یک موقعیت ساختگی می‌توان آثار واقعی بعضی شرایط احتمالی را بازسازی کرد.

1- شبیه سازی فیزیکی و متقابل (شبیه سازی فیزیکی، به شبیه سازی اطلاق می‌شود که در آن اشیای فیزیکی به جای شی واقعی جایگزین می‌شوند و این اجسام فیزیکی اغلب به این خاطر استفاده می‌شوند که کوچک‌تر و ارزان تر از شی یا سیستم حقیقی هستند. شبیه سازی متقابل (تعاملی) که شکل خاصی از شبیه سازی فیزیکی است و غالباً به انسان در شبیه سازی‌های حلقه‌ای اطلاق می‌شود یعنی شبیه سازی‌های فیزیکی که شامل انسان می‌شوند مثل مدل استفاده شده در شبیه ساز پرواز.)

2- شبیه سازی در آموزش (شبیه سازی اغلب در آموزش پرسنل شهری و نظامی استفاده می‌شود. معمولاً هنگامی رخ می‌دهد که استفاده از تجهیزات در دنیای واقعی از لحاظ هزینه کمرشکن یا بسیار خطرناک است تا بتوان به کارآموزان اجازه استفاده از آن‌ها را داده. در چنین موقعیت‌هایی کارآموزان وقت خود را با آموزش دروس ارزشمند در یک محیط واقعی «ایمن» می‌گذرانند. غالباً این اطمینان وجود دارد تا اجازه خطا را به کارآموزان در طی آموزش داد تا ارزیابی سیستم ایمنی– بحران صورت گیرد.)

شبیه سازی‌های آموزشی به طور خاص در یکی از چهار گروه زیر قرار می‌گیرند :

الف - شبیه سازی زنده (جایی که افراد واقعی از تجهیزات شبیه سازی شده (یا آدمک) در دنیای واقعی استفاده می‌کنند.)

ب - شبیه سازی مجازی (جایی که افراد واقعی از تجهیزات شبیه سازی شده در دنیای شبیه سازی شده (یا محیط واقعی) استفاده می‌کنند.) یا

ج - شبیه سازی ساختاری (جایی که افراد شبیه سازی شده از تجهیزات شبیه سازی شده در یک محیط شبیه سازی شده استفاده می‌کنند. اغلب به عنوان بازی جنگی نامیده می‌شود زیرا که شباهتهایی با بازی‌های جنگی رومیزی دارد که در آن‌ها بازیکنان، سربازان و تجهیزات را اطراف یک میز هدایت می‌کنند .)

د - شبیه سازی ایفای نقش (جایی که افراد واقعی نقش یک کار واقعی را بازی می‌کنند.)

3 - شبیه سازی‌های پزشکی (شبیه سازهای پزشکی به طور فزاینده‌ای در حال توسعه و کاربرد هستند تا روشهای درمانی و تشخیص و همچنین اصول پزشکی و تصمیم گیری به پرسنل بهداشتی آموزش داده شود. طیف شبیه سازها برای آموزش روش‌ها از پایه مثل خونگیری تا جراحی لاپاراسکوپی و مراقبت از بیمار دچار ضربه، وسیع و گسترده است. بسیاری از شبیه سازهای پزشکی دارای یک رایانه هستند که به یک ماکت پلاستیکی با آناتومی مشابه واقعی متصل است. در بعضی از آنها، ترسیم‌های کامپیوتری تمام اجزای قابل رؤیت را به دست می‌دهد و با دستکاری در دستگاه می‌توان جنبه‌های شبیه سازی شده کار را تولید کرد. بعضی از این دستگاه‌ها دارای شبیه سازهای گرافیکی رایانه‌ای برای تصویربرداری هستند مانند پرتو ایکس یا سایر تصاویر پزشکی. بعضی از شبیه سازهای بیمار، دارای یک مانکن انسان نما هستند که به داروهای تزریق شده واکنش می‌دهد و می‌توان آن را برای خلق صحنه‌های مشابه فوریت‌های پزشکی خطرناک برنامه ریزی کرد. بعضی از شبیه سازهای پزشکی از طریق شبکه اینترنت قابل گسترش هستند و با استفاده از جستجوگرهای استاندارد شبکه به تغییرات جواب می‌دهند. در حال حاضر، شبیه سازی‌ها به موارد غربال گری پایه محدود شده‌اند به نحوی که استفاده کنندگان از طریق وسایل امتیازدهی استاندارد با شبیه سازی در ارتباط هستند.)

4 - شبیه سازهای پرواز (یک شبیه ساز پرواز برای آموزش خلبانان روی زمین مورد استفاده قرار می‌گیرد. به خلبان اجازه داده می‌شود تا به هواپیمای شبیه سازی شده اش آسیب برساند بدون آن که خود دچار آسیب شود. شبیه سازهای پرواز اغلب برای آموزش خلبانان استفاه می‌شوند تا هواپیما را در موقعیت‌های بسیار خطرناک مثل زمین نشستن بدون داشتن موتور یا نقص کامل الکتریکی یا هیدرولیکی هدایت کنند. پیشرفته‌ترین شبیه سازها دارای سیستم بصری با کیفیت بالا و سیستم حرکت هیدرولیک هستند. کار با شبیه ساز به طور معمول نسبت به هواپیمای واقعی ارزان تر است.)

5 - شبیه سازی و بازی ها(هم چنین بسیاری از بازی‌های ویدئویی شبیه ساز هستند که به طور ارزان تر آماده سازی شده اند. بعضی اوقات از این‌ها به عنوان بازیهای شبیه سازی (sim) نامبرده می‌شود. چنین بازیهایی جنبه‌های گوناگون واقعی را شبیه سازی می‌کنند از اقتصاد گرفته تا وسایل هوانوردی مثل شبیه سازهای پرواز.)

6 - شبیه سازی مهندسی (شبیه سازی یک مشخصه مهم در سیستم‌های مهندسی است. برای مثال در مهندسی برق، از خطوط تأخیری استفاده می‌شود تا تأخیر تشدید شده و شیفت فاز ناشی از خط انتقال واقعی را شبیه سازی کنند. مشابهاً، از بارهای ظاهری می‌توان برای شبیه سازی مقاومت بدون شبیه سازی تشدید استفاده کرد و از این حالت در مواقعی استفاده می‌شود که تشدید ناخواسته باشد. یک شبیه ساز ممکن است تنها چند تا از کارکردهای واحد را شبیه سازی کند که در مقابل با عملی است که تقلید نامیده می‌شود. 7 - اغلب شبیه سازی‌های مهندسی مستلزم مدل سازی ریاضی و بررسی‌های کامپیوتری هستند. به هر حال موارد زیادی وجود دارد که مدل سازی ریاضی قابل اعتماد نیست. شبیه سازی مشکلات مکانیک سیالات اغلب مستلزم شبیه سازی‌های ریاضی و فیزیکی است. در این موارد، مدل‌های فیزیکی نیاز به شبیه سازی دینامیک دارند.)


8 - شبیه سازی کامپیوتری (شبیه سازی رایانه، جزو مفیدی برای بسیاری از سیستم‌های طبیعی در فیزیک، شیمی و زیست‌شناسی و نیز برای سیستم‌های انسانی در اقتصاد و علوم اجتماعی (جامعه‌شناسی کامپیوتری) و همچنین در مهندسی برای به دست آوردن بینش نسبت به عمل این سیستم‌ها شده است. یک نمونه خوب از سودمندی استفاده از رایانه‌ها در شبیه سازی را می‌توان در حیطه شبیه سازی ترافیک شبکه جستجو کرد. در چنین شبیه سازی‌هایی رفتار مدل هر شبیه سازی را مطابق با مجموعه پارامترهای اولیه منظور شده برای محیط تغییر خواهد داد.شبیه سازی‌های کامپیوتری] اغلب به این منظور به کار گرفته می‌شوند تا انسان از شبیه سازی‌های حلقه‌ای در امان باشد. به طور سنتی، مدل برداری رسمی سیستم‌ها از طریق یک مدل ریاضی بوده است به نحوی که تلاش در جهت یافتن راه حل تحلیلی برای مشکلات بوده است که پیش بینی رفتار سیستم را با استفاده از یک سری پارامترها و شرایط اولیه ممکن ساخته است. شبیه سازی کامپیوتری اغلب به عنوان یک ضمیمه یا جانشین برای سیستم‌های مدل سازی است که در آن‌ها راه حل‌های تحلیلی بسته ساده ممکن نیست. انواع مختلفی از شبیه سازی کامپیوتری وجود دارد که وجه مشترک همه آن‌ها در این است که تلاش می‌کند تا یک نمونه از برنامه‌ای برای یک مدل تولید کنند که در آن امکان محاسبه کامل تمام حالات ممکن مدل مشکل یا غیر ممکن است.)

به طور رو به افزونی معمول شده است که نام انواع مختلفی از شبیه سازی شنیده می‌شود که به عنوان «محیط‌های صناعی» اطلاق می‌شوند. این عنوان اتخاذ شده است تا تعریف شبیه سازی عملاً به تمام دستاوردهای حاصل از رایانه تعمیم داده شود.


9 - شبیه سازی در علم رایانه (در برنامه نویسی کامپیوتری، یک شبیه ساز اغلب برای اجرای برنامه‌ای مورد استفاده قرار می‌گیرد که انجام آن برای رایانه با مقداری دشواری همراه است. برای مثال، شبیه سازها معمولاً برای رفع عیب یک ریزبرنامه استفاده می‌شوند. از آن جایی که کار کامپیوتر شبیه سازی شده است، تمام اطلاعات در مورد کار رایانه مستقیماً در دسترس برنامه دهنده است و سرعت و اجرای شبیه سازی را می‌توان تغییر داد. همچنین شبیه سازها برای تفسیر درخت‌های عیب یا تست کردن طراحی‌های منطقی VLSI قبل از ساخت مورد استفاده قرار می‌گیرند. در علم رایانه نظریه، عبارت شبیه سازی نشان دهنده یک رابطه بین سیستم‌های انتقال وضعیت است که این در مطالعه مفاهیم اجرایی سودمند است.)

10 - شبیه سازی در تعلیم و تربیت (شبیه سازی‌ها در تعلیم و تربیت گاهی مثل شبیه سازی‌های آموزشی هستند. آن‌ها روی وظایف خاص متمرکز می‌شوند. در گذشته از ویدئو برای معلمین و دانش آموزان استفاده می‌شود تا مشاهده کنند، مسائل را حل کنند و نقش بازی کنند؛ هرچند، یک استفاده جدید تر از شبیه سازی‌ها در تعلیم و تربیت شامل فیلم‌های انیمیشن است (ANV .(ANV‌ها نوعی فیلم ویدئویی کارتون مانند با داستان‌های تخیلی یا واقعی هستند که برای آموزش و یادگیری کلاس استفاده می‌شوند.ANV‌ها برای ارزیابی آگاهی، مهارت‌های حل مسئله و نظم بچه‌ها و معلمین قبل و حین اشتغال کارایی دارند.)

شکل دیگری از شبیه سازی در سال‌های اخیر با اقبال در آموزش بازرگانی مواجه شده است. شبیه سازی بازرگانی که دارای یک مدل پویا است که آزمون استراتژی‌های بازرگانی را در محیط فاقد خطر مهیا می‌سازد و محیط مساعدی برای مباحث مطالعه موارد ارائه می‌دهد.

یک سیستم شبیه سازی کامل(۲)

مطالعات حافظه

 

حافظة شبیه سازی شده در Simics : یک یا چند فضای حافظه ای که معمولاً در مقایسه با فضاهای آدرس دهی شده در سیستمهای واقعی یافت می شود، است . مثال های مشخصِ این حالت، شامل حافظة مخزنی فیزیکی ، فضاهای ( پی سی آی باس)pci-bus و فضاهای آدرس دهی شدة I/O است. استفاده کننده ها نه تنها می توانند فضاهای حافظه ای را در ارتباط با یک مدل زمانی با آن گسترش دهند. بلکه؛ مخصوصاً در اثر چگونگی راههای ورود به یک حافظة طولانی ،‌می توانند ورود به مخزن و شبیه سازهای حافظه با ایجاد یک ردیابی تصحیح شوند.

 

 

توسعة دستگاه ها

 

Simics دارای یک رابطة متقابل  برای ارتباط با برنامه های خروجی است. این برنامه ها می توانند یک روش منفرد یا یک باسِ ( bus ) حافظه ایجاد کنند. استفاده کننده ها می توانند یک روش جدید را توسط ارتباط با simics آزمایش کرده و ترافیک simics I/O مشتق شده از این روش در طول این آزمایش داشته باشد.

 

 

شبیه سازی سیستم عامل

 

 

در زمان دسترسی به سیستم عامل مورد نظر ، توسعه دهنده ها می توانند فعالیتهای اجرایی در سطح استفاده کننده روی یک شبیه ساز « درخواستهای ظاهرشده» را با استفاده از شبیه سازی یک سیستم عامل انجام دهند.

شبیه ساز OS  نیاز به اجرا روی سخت افزار شبیه سازی شده دارد، که به معنی این است که ما بتوانیم عملکرد یک اجرای منفرد را جداسازی ((ایزوله))کنیم . برای مثال در یک محیط OS  شبیه سازی شده ، گسیختگی ها  و عملیاتهای استثنایی از اندازه های عملکرد یک مخزن اجرایی تأثیر نمی گیرد. رقابت OS می تواند در یک زبان نوشتاری توسعه یابد.

برای اهداف آموزشی ، یک افزایش بنیادیِ هسته ای در زبان نوشتاری ، ورودیهای os را شرح داده و اصلاح کامپیوتر را برای آزمایشات عملی و مطالعات ، آسان می‌سازد. برای مثال در گسترش حمایت از فرآیندهای جدید ، کار روی نیازمند شمارِ زیادی از سیکل های شبیه سازی شده در پروژه است. شبیه سازی سادةos  به طراحان مؤلف اجازه می دهد ، آزمایشات مؤلف را در سطح استفاده کننده مستقل از فرآیند ،‌ روی سیستم عامل واقعی انجام دهند.

 

 

توسعة سیستم عامل «OS »

 

 

ارئة میان افزار و سیستمهای عامل برای دسترسی به سخت افزار یک استفادة کلاسیک از شبیه سازی سیستم کامل است. برای مثال Linux suse  زا به طراح معماری AMD x86-64 با استفاده از مدل Hammer از simics وارد می‌‌‌کند و سیستم های wasabi در همان بخش بهNetBSD   وارد می‌شود. با استفاده از روشهای قدیمی با یک طراحِ معماری پردازشگر جدید ، کار ورودی مرکزی را می توان در اغلب عوامل مشتق شده از آن نادیده گرفت، حتی زمانی که سخت افزار در دسترسی است.  یک شبیه ساز، فواید کلاسیکی دارد. برای توسعة میان افزار ، توانایی افزایش نقاط وقفة ویژه بسیار سودمند است، مثل توقف اجرا بر اساس خواندن ثبت نامهای کنترلی مخصوص .

 

اشکال زدایی

 

یک شبیه ساز یک سری از روشهای نیرومند برای قراردادن اشکالها در مقایسه با اشکال زداهای متداول  است. simics امور رایج اشکال زدایی را مثل ؛ عملیات اطلاعات سمبولیک ، ردیف کردن نقاط توقف«وقفه» و مرحله بندی کردن را انجام می دهد، که برای دستیابی به سیستم بدون عیب است. با این وجود ، توسعه دهنده ها مجاز به بازرسی موقعیت این روشها و اجرای سیستم است. توانایی تکرار به طور منحصر . یکی از اَشکالِ سودمند برای اشکال زدایی است.

ورودی متقابل موس و صفحه کلید همانند ترافیک شبکه است که می تواند برگشت داشته باشد، که این باعث درستی روند اجرایی می شود. که یک اِشکال را برای تکرار فعال می کند.

توسعه دهنده ها پشتیبانی بازرسی شده را برای افزایش نقاط و وقفة پیشرفته استفاده می کند. برای مثال، نقاط وقفة نوشته شده می تواند معانی قفل شده را در ساختارهای داده‌ای چِک کرده و نقاطِ وقفة زمان بندی شده می تواند هنگامی که دو نقطه از برنامه جدا از همدیگر اجرا شود، علامت گذاری شود.

توسعه دهنده ها همچنین می توانند به اِشکال زداهای خروجی متصل شوند. Simics  مدل جزئی gdb پروتکل اشکال زدایی جزئی TCP/IP را از GNU Debugger « gdb » افزایش می دهد. زمانیکه gdb  جزئی با خطِ رایج simics  کار می‌کند. استفاده کننده ها می‌توانند یک اشکال زدای کاملاً شناخته شده که با اَشکال دیگر simics روبرو است به کار برند.

 

آزمایش با قابلیت دسترسی بالا

 

 

Simics   آزمایشات مشخص سیستم را مثل اعتبار ، اجرا و تحمل نقص حمایت می کند، که نمی تواند در هر مسیر آزمایشی بدون شبیه سازی ، امتحان شود. یک شبیه ساز می تواند شرایط را اغلب برای ایجاد عملکردهای ناقص اصلاح کند. این عامل دارای فواید مشخصی در مقایسه با آزمایش سخت افزارِ فیزیکی است.

این موضوع سطح بالایی از اطلاعات در مورد روشهای خطا تهیه می کند و می تواند خطاهای کشف شده را تکرار کند. به عبارتی ، این آزمایش می تواند با استفاده از نقاط کنترلی و بازرسی ها ، به صورت خودکار «اتوماتیک» انجام شود و این هزینه بسیار پایین رود.

 

 

 

 

افزایش Simics

 

شکل (4 )یک بررسی از طراحی معماری simics را نشان می‌دهد که بیشتر از یک دهه به طول انجامیده است. نسخة اخیر ، بیشتر از 50 سال پیشرفت را طی کرده و با یک میلیون مسیر کُد شده در ارتباط است.

 

 

مرکزیت Simics

 

مرکزیت Simics ؛ زمان واقعی بین شبیه سازیهای simics را هم زمان کرده و ترافیک شبیه سازی شده را بینِ منحنی ها تعمیم می‌دهد و در واقع بدین ترتیب ترافیک را کاهش می‌دهد. این موضوع حداقل یک عکس العمل روی هر پیغام عبوری نشان می‌دهد که باعث شبیه سازیِ بدون عیبی، جهت تعیین قطعیتِ آن می شود. برای اشتراک عکس العمل شبکة میزبان با شبیه سازی ، مرکزیت simics یک برنامة زمانی دومرحله‌ای ، برای هم زمانی پیامهای عبوری استفاده می‌کند.

مرکزیت simics  اخیراً شبکة «Ethernet» را حمایت می‌کند ، اما انواع دیگر شبکه ها می توانند با استفاده از یک ساختار زیرین مقایسه‌ای اضافه شوند. اندازه گیریهای سازگار شبکه « مثل یک AM79C960 » با طرح مرکزی Ethernet در مرکزیت simics مرتبط است.

Simics شبیه سازیهایی با بیشترین سرعت ممکن ایجاد می کند ، اما مرکزیت simics شبیه -سازی را متوقف می کند. اگر یک فرآیند، سیکلهای مصرفی را آهسته تر از مرحلة استراحت انجام دهد ، به عبارت دیگر؛ سرعت شبیه سازی شبکه با سرعت آهسته ترین فرآیند simics متناسب است.

 

پیکربندی « ترتیب»

 

 

Simics یک زبان پیکر بندی ساده، برای توضیح سیستم هدف ، استفاده می‌کند. این عامل در مقایسه با پردازنده یا روش ماشین هدف و یا یک عامل مجازی مثلِ  طرح حافظة فیزیکی مجازی و اَشکال دیسک است.  این عوامل ، از طریق کلاسهایی که به وسیلة مدلهای بارشدة زمانِ اجـرا تعریف شده‌اند ، معرفی می‌شوند . بـرای اضافه کردن یک روش ،توسعه دهنده ها  یک مقیاس قابل استفاده با استفاده از اجرای برنامة simics با افزایش یک کلاس- می نویسند. بنابراین ، آنها عاملی از آن کلاس در پیکر بندی فایل هستند. لیست زیر قسمتهایی از پیکر بندی یک فایل را برای desktop  کامپیوترهای شخصی آینده با حافظة 256 مگابایت را نشان می‌دهد.«شکل 5 »

این فایل عواملی را برای پردازنده ، فضای حافظة فیزیکی و کنسول گرافیکی تعریف می‌کند. پیکربندی سیستم، نقاط کنترلی را با ثبتِ همة عوامل و نشانه هایشان در دیسک، در یک فرمت متنیِ قابل خواندن توسط انسان ، افزایش می‌دهد.

 

 

مسیر رایج متقابل«CLI » و بازرسی

 

Simics  در ابتدا مسیر رایج متقابلی « CLI »را کنترل کرد که مشابه با پایانة یک اشکال زدا بود. Simics همچنین دارای یک ساختار در محیط اجرای زمانی Python است که مسئول بازرسی‌های Python بوده و آنها را در CLI اجرا می‌کند.

در حقیقت CLI در Python ، بااستفاده از Simics API نوشته می‌شود. این بازرسیها می‌تواند با رویدادهای حقیقی در ارتباط باشد، مثلِ انتقال کمبودهای بافر کناری ترجمه«TLB» و اجراهای I/O . این کُد در شکل( 5 ) یک مثال Python از یک نقطه توقف شرطی است. این عامل ، نصب یک عامل برگشتی را به عهده دارد ، این زمانی است که نقطة توقف راه اندازی می‌شود. « در این مورد، زمانی است که دستورالعمل روی آدرس 0x000f 2501 اجرا می‌شود.» اگر رجیستر«ثبت» EAX وسیعتر از رجیستر ECX باشد، سیگنالهای کناررفته یک توقف داشته و شبیه سازی متوقف می‌شود. از طرف دیگر شبیه سازی ادامه می‌یابد. به چگونگی همة عوامل موجود در مقیاس CONF توجه کنید و موضوعات  Python  را طرح ریزی کنید.

 

 

دستگاهها

 

برای هر هدف، Simics یک سری روشها که میان افزار و سیستمهای عامل را قادر به راه‌اندازی و اجرا می‌کند ، پشتیبانی می‌کند. برای x86 «PC » ، به عنوان مثال simics  ، روشهای حاصل از ISA را مثل یک تایمر «8254 »، یک کنترل کنندة فلاپی  «82077 » ، یک کنتـرل کنندة صفحه کلیـد / موس «8042 »  ، مدیـریت( دستیابی ) حافظة تصادفی( اجرایی) « 8237 » ، یک کنترل کنندة وقفه « 8259 » ، و یک کلاک پالس تایمر واقعی RAM «DS12887 » . دستگاههای دیگر Simics x86  شامل یک کنترل کنندة وقفه « APIC  , I/O APIC » ، یک میزبان برای پُل PCI « 82443BX » ، یک کنترل کنندة IDE  ، یک آداپتور VGA «کارت گرافیک» ، یککارت گرافیک 3 بعدی سریع و آداپتورهای Ethernet را پشتیبانی می‌کند.

پردازشگرهای مورد نظر معمولاً دال بر خانواده ای از پردازشگر مرکزی است. برای مثال x86 حاوی 486sx پنتیوم 2 است. Simics . مقیاسهای سیستم پردازشگر چندتایی را برای همة اهداف ، حفاظت می‌کند.

 

 

رویارویی با شبیه سازهای دیگر

 

همانطور که bus حافظه در شکل 4 نشان می‌دهد، simics می تواند با یک مدل درستِ سیکل زمانیِ نوشته شده، در یک زبان توصیفیِ سخت افزاری « HDL » مثل verilog ، روبرو شود.

Verilog این رویارویی ها را تعریف می‌کند ، که به عملکردهای مسیر c اجازه می‌دهد که جزئی از اجزاء HDL باشد. بنابراین  verilog می‌تواند به بخش ارتباطی در HDL  متصل شده و برنامة HDL می‌تواند با فراخواندن آن به شبیه سازی پیشرفتة یک واحد زمانی فیکس شده و مخصوصاً یک سیکل زمانی در یک زمانمشخص اجرا شود. زمانیکه سیگنالهای بین simics  و شبیه ساز HDL عبور می‌کند ، سطوح ظاهری مربوطه باید انتقال یابد. برای مثال، مدلهای حافظه ای simics به صورت اتوماتیک خوانده می‌شود.بنابراین اگر شبیه ساز HDL یک گذرگاه حافظة اجراییِ انشعابی را تشکیل دهد ، باید خواندن را در یک پیامِ درخواست خواندن ، متوقف کرده و یک اجرای گذرگاه داده‌ای انجام دهد. همچنین simics چندین اجرای حافظه ای برجسته را برای ایجاد نمونه‌های ترافیک واقعی با حفظِ لیستی از دستورالعملها که اخیراً اجرا می‌شوند ، پشتیبانی می کند.

زمانیکه داده‌ها از مدل HDL به Simics می رسد، راه اندازی اجرایی دستورالعملهایی که در ابتدا متوقف شده بود ، در همان مسیرِ یک پردازشگرِ مدرنِ خروجیِ خواسته شده ، اجرا می‌شود.  Simics  از این خروجی خواسته شده برای ایجاد یک روش منطقی از ترافیک حافظه برای شبیه سازی خارجی ، استفاده می‌کند.

 

 

رابطة برنامة اجرایی Simics

 

یک شکل عمدة استفاده از simics ، توانایی گسترش آن است که باعث می‌شود، استفاده‌کننده ها ارتباط جدیدی در اختراع مدلها ، اضافه کردن تقاضاهای جدید ، یا نوشتن کنترل و تحلیل موارد معمول ، بوجود آید. Simics API  دارای بیشتر از 200 عملکرد خروجی ، چندین داده و بیشتر از50 رابطة قبلاً تعریف شده« پیش فرض» دارد. این روابط ، کلکسیونی از اشاره گرهای عملکردیِ مشابه با روش جدولها هستند که simics برای ارتباط موضوعات داخلی، استفاده می‌کند. API در زبان c نوشته شده است، اما به طور مکانیکی به Python صادر می‌شود.

 

 

 

حافظه

 

اجرای حافظه ، بزرگترین اجرای رقابتی یک برای شبیه سازی  سیستم کامل است. Simics یک علامت انتقال شبیه ساز «STC » ، برای سرعت دادن به کارها و ذخیره ها و اجرای دستورالعملها «Fetch » است. این علامتها ، اشاره گرها را برای حافظة شبیه سازی شده ذخیره کرده و با ادرس های مجازی ، جمعآوری می‌کند. یک عامل در تضمینِ STC  این است که ؛ هیچ تأثیر جانبی ، مثل یک استثناءِ همترازی ، فقدان TLB « بافر ترجمة کناری» ، فقدان مخزن یا وقفة شبیه ساز وجود ندارد.

برای اجرای دستورالعملها ، STC بعضی از آدرسها را ذخیره می‌کند، که منحنی های منشعبی ایجاد می‌کند که می توانند به طور ایمن عبورکنند. 

ضرورتاً ، کارهای stc به عنوان یک علامتی، برای ترجمة نمونة متداول است« که این یک STC Hit است. » ، که برای سهولتِ ترجمة قسمت مرکزی مناسب است. این نیاز برای ایجاد یک پیچیدگی ، مشخص است: برای مثال ، simics نیازمند به کاربردن ترکیبات مختلفِ هدف نهایی میزبان و اندازة فضای آدرس دهی می‌باشد. طرح STC ممکن است پیچیده ترین ساختار ، برای شبیه ساز باشد.

 

 

 

ترجمة کدهای ردیف شده

 

 

در مرکز هر سیستم شبیه ساز کامل ، یک مرکز ترجمه -«انتقال»- است. روشهای پردازشگر مرکزیِ شبیه سازی شده ، شامل مدلهای وقفة داخلی «استثنایی» ، طیف قابل مشاهده «نرم افزاری» ، کنترل عوامل ثبت شده و غیره است. بعضی پردازشگرها شامل اَشکالی شبیه ریزکدها هستند ، بنابراین simics/Alpha ، کد PAL « توابع کتابخانه‌ای معماری‌های ویژه » را پشتیبانی می‌کند .

راههای مناسب بسیاری برای نوشتن ترجمه ها وجود دارد مثل ، ترجمة کدهای ردیفی و انواع مختلفی از کدهای اجرای زمانی .

استفاده از یک شبیه ساز مؤثر و حتی خوبِ سازندة دست ، یک کار متمرکز و مستعد خطا است. ما یک زبان مخصوص SimGen با کد کردن معیارهای مختلفی از دستورالعملهای مورد نظر برای طراحان ایجاد کرده ایم. Simgen شامل ترکیب و کدکردن دستورالعملها همانند کد C برای مفاهیم و خواص و نشانه های سطح بالای استفاده شده با مدلهای زمانی است. سازگار کردن شامل سکانسی از ارزیابی های ناقص بوده که پیشنهاداتی در مورد تخصصی کردن و اتوماتیک کردن ارائه می‌دهد. شکل «6 » نشان می‌دهد spec  برای یک IA32 / x86-64 به دستورالعملهای سمت چپ اضافه می‌شود. این مثال همة تعریفهای ماکرویی را که بیشتر از 100 مسیر دارد، حذف می‌کند. SinGen  ماکروهای مخصوصی برای بیان ماهیت مفهومی ، ترکیبی و تکراری دستورالعمل های طراحان استفاده می‌کند و دستورالعمل فرکانس آماری را برای هدایت سرویسهای مخصوصِ متداول استفاده می کنند. خروجی ، یک ترجمه ای درC  است. ضرورتاً ، مرکز simics از یک خصوصیت سطح بالا بارور می شود.

 

 

استعمال رویدادها

 

Simics  یک ماشین استعمال رویدادهای ایجاد شده است. هر پردازنده دارای دو ردیف رویداد است : یکی «ردیف مراحل» و دیگری «ردیف زمانی» .

در ردیف مراحل ، رویدادها بعد از تعدادی از مراحل ، محاسبه کنندة برنامه ظاهر می‌شود. محاسبة مراحل ، خلاصه ای از دستورالعملهای تکمیل شده به طور موفقیت آمیز است که باعث دستورالعملهایی می شود که استثنائاتی را به وجود می‌آورد و اجراهای داخلی در سطح سیستم استفاده می‌شود. «ردیف زمانی» دارای راه حلی  برای یک سیکل زمانی پردازشگر است که واحد زمانی ثابتی در پیکر بندی است « همانند آنچه که در موضوع cpuo بالا وجود داشت. » Simics می‌تواند چندین رویداد را در همان سیکل، مرحله ای فهرست می‌کند و این ردیف را در درخواستِ FIFO  به کار می‌برد. زمانیکه فرستادن یک رویداد به ردیف زمانی انجام شود ، simics می‌تواند ردیفهای زمانی همة پردازشگرهای رویدادها را که حالت کلی را تحت تأثیر قرار می‌دهد ، همزمان کند. طرح این ردیفِ دوتایی به simics  اجازه می دهد که اجزاء رویدادهای مشتق شده و اجزاء مشتق شدة زمانی را ترکیب کند.

 

 

اجرا

 

جدول (1 ) اجرای simics  را خلاصه کرده است. برای سهولت ، ما انواع مختلفی از امور کاری راه اندازی سیستم عامل را انتخاب کرده ایم که هفت طرح پردازشگر مختلف را شکل دهی کرده است : Alpha EV5  ، ultra sparc 2 ، Ultra sparc 3 ، پنتیوم 2 ( Intel ) ،      AMD x86-64 « Hammer » ، Intel ipf(( Itanium))  و Power Pc 750 .   برای ایجاد رقابت ،‌ ما همة اندازه ها را روی یک پنتیوم 3 933 mhz Intel -  با 512 مگابایت RAM  اجرایی LINUX ، اجرا کرده ایم.

برای شرح میزان توزین ، جدول 2 زمانهای راه اندازی کردن Solaris 8  را روی سیستمهای سرویس دهی ultra 2 enterprise برای موقعیت سریعِ چند کاربری در اندازه های مختلفی از پیکربندی نشان می دهد. این میزان یک سیستم ultra sparc 3 «750 Mhz » است. این زمان یک راه اندازی Solaris  در ارتباط با نسخة سیستم عامل است. روشهای موجود برای مقدار حافظه ، فرکانس زمانی ، سرویسهای سیستم و غیره است.

میلیونها دستورالعمل به ازاء هر ثانیه روی مدلهای چند پردازنده ای وسیعتر هستند. برای اینکه ما قادر باشیم cpu های زائد را در طول اولین فاز راه اندازی ، ازکار بیندازیم. نسخه های خروجی خواسته شده در اجرای Ultra sparc  بسیار پایین تر است. در مثال راه اندازی solaris 8  ، نسخة خروجی یک داده 16 کیلو بایتیِ اجرا شده در 0.3MIPs در مقایسه با 6.62MIPs در جدول 2 شبیه سازی می‌کند.

 

 

سیستم مرتبط با کار شبیه‌سازی

 

IBM اولین شبیه ساز مدرن را گسترش داد که باعث ایجاد برنامه‌های نوشته شده برای Ibm7070 جهت اجرای یکی از سیستمهای وسیع / کامپیوترهای 360  می‌شود « برای خلاصه‌ای از کار روی شبیه سازی و شبیه سازی در صنعت، مقالة 1979 توسط مایکل کنون و همکاران » .

کارهای مقدماتی در آکادمیِ شامل شبیه ساز PDP11  توسط «جان دویل» و « تون ماندل برگ » تشکیل شده و افزایش   g88 توسط « رابرت بدیچ » انجام شد . افزایش g88 به طور متوالی در محدودة عمومی قرار گرفته و جزییات طرح را منتشر می‌کند. این افزایش، یک پردازشگر واحدِ سیستم پایه ریزی شده به M88100 با ترکیبی از روشهای کاذب و حقیقی تشکیل می‌دهد و می‌تواند یک سیستم عامل را راه‌اندازی کند. یک پردازشگر از simics در سال 1991 شروع شد که روی g88 پایه ریزی شده و برای حمایت چند فرآیند با حافظة فیزیکی تقسیم شده است.

در سال 1994 ، شبیه ساز gsim دوباره به عنوان یک پردازشگر چندتایی مدل sparc  v8 در نتیجة اولین نسخة simics دوباره نوشته شده است. اخیراً ، SimOS (( شبیه ساز سیستم عامل)) قسمتهای وسیعی از یک MIPS پایه ریزی شده بر اساس چند پردازشگر تشکیل شده ، راه اندازی شده و یک منحنی Irix اصلاح شده را اجرا می‌کند. SimOS و Simics اهداف مشابهی داشته و به راه حلهای مشابهی برای این عوامل می‌رسند. به عبارتی ؛ آنها به طور موازی پیشرفت کرده اند.

برای مثال، بازرسی اخیر کامپیوتر«شبیه سازی شده » در simics از تفسیر کارِ SimOS ناشی می‌شود.

Simics از کار شبیه سازی اولیه با انجام بهترین عملیاتها تشخیص داده می‌شود. بسیاری از احتمالات سیستم شبیه سازیِ کامل برای اجراکننده ها در دو بخش صنعت و آکادمی ، برای تکمیل همان زمان شاید دوره ده ساله بوده است. اما Simics این احتمالات را با یک محدودة کاری منحصر بفرد ، بیشتر از ابزار دیگر ، حمایت می‌کند.

برای مثال ، اجرای یک کد واقعی احتمالاً دارای اهمیت هستند. برای ابزار مشابه، ما اطلاع داریم که Simics  می تواند میان افزار حقیقی را اجرا کند و کاملاً منحنی اصلاح نشدة کدهای مشتق شده را به اجرا درآورد.

 

نتیجه گیری

 

در حقیقت ، محققان Simics را برای توسعه و آزمایش میان افزار ، برای چندین desktop آینده و چندین سیستم سرویس دهنده استفاده می‌کند.

Simics  قادر به اجرای یک شبکة ناهمگن از سیستم ها ، از بخشهای مختلف با همان شبکة کاری می‌باشد.

Simics یک ابزار سریع با یک سطحِ تجرد است که اضافه کردن اجزاء جدید و نفوذ به قسمتهای قدیمی را تسهیل می‌کند.

Simics یک کامپیوتر(شبیه سازی شده) عملی برای استفاده در یک رِنجِ وسیع از اجراهاست. ما اعتقاد داریم Simics نقطة شروعی برای یک مسیر مختلف از طرح ریزیِ آزمایش و افزایش سیستم های دیجیتالی بالا را نشان می‌دهد.

 

 

یک سیستم شبیه سازی کامل(۱)

یک سیستم کامل شبیه سازی ، تعادلی بینِ مرحلة درستی و صحت با مرحلة اجرا ، از طریق تشکیلِ اجرایِ نهایی کامل و تهیة یک محدودة کاری مشخص  برای  سخت افزار و طرحِ نرم افزار  در این زمینه ایجاد می‌کند.

همة کامپیوترها می‌‌‌توانند یکدیگر را شبیه‌سازی کنند که این یک نتیجة بلاواسطه از کارِ تئوری (( آلِن تورینگ و آلونزو چِرچ ))  است. طراحان کامپیوتر مسیری در استفاده از این خاصیت در پروژة ((EDSAC )) در سال 1950 ایجاد کردند. شبیه سازی در اَشکال و صورتهای مختلفی بوده و برای حمایت طرحِ کامپیوترها در هر زمان است. شبیه‌سازی دلیلی بر فواید متداولِ ساختار نرم‌‌‌‌افزاری است، که می‌‌تواند به طور قراردادی فرآیند پارامتری کردن ، کنترل و بازرسیِ سیستمی که تشکیل شده است را در سیستم هدفْ  انجام دهد. این اندازه گیریها ، غیرنفوذی و تعیین کننده هستند؛ با این وجود پایه ای برای اتوماتیک شدن می‌ باشند. جلسات شبیه سازی مضاعف (چند شبیه سازی ) می توانند به طور موازی ( همزمان ) صورت گیرند و نیز این جلسات این امکان را دارند که به صورت سند درآیند .

به طور طبیعی ، ما می خواهیم یک سیستم بی عیب  شبیه سازی کرده و با دقت کامل آن را  به اجرا در آوریم. در یک مدل کامل مشکلات قابل مشاهده‌ای در مورد تکمیل این جستجو وجود دارد ، مثلِ هزینه ، زمان تکمیل ، نقایص و کاهش خطاها. اما مهمترین آنها ، مسألة رئالیسمِ(واقعی) فشارهای کاری است. در اغلب موارد، ما چگونگیِ کاهشِ فشارهای یک مدلِ بدون عیبْ با اجرای مناسب ، جهت اجرای فشارهای کاری (واقعی) رئالیستیک را نمی دانیم . بنابراین به طور عملی ، مدلهایی که دارای دقت بالایی می باشند((مدلهایی که سعی می‌‌کنند دارای دقت بالایی باشند)) ، در نهایت برای اجرای فشارهای کاری بسیار محدود ((سرگرمیها)) مجاز شناخته شده اند .این نتیجة پاسخ دادن دقیق به سئوالهای نامربوط است.

نرم افزارهای Simics یک رایانه (‍Platform ) برای شبیه سازی کاملِ سیستم هستند که مجاز به ایجاد یک تعادل بین مرحلة دقت(صحت) با مرحله اجرا هستند و آن این است که این موضوع به طور کارا برای بدست آوردنِ سطوح اجرایی نسبتاً خوب درهمین زمان ، مورد بررسی قرار گرفته است. ((دقت عملی)) ، مناسب برای اجرای فشارهای کاری تجاری و همچنین ((دقت زمانی)) ، مناسب برای رویارویی با مدلهای سخت افزاری دقیق است. پروژة(طرح) Simic  یکی از اولین پروژه های (طرح های )علمی و دانشگاهی (آکادمیک) در این زمینه هستند. این موضوع اولین سیستم کامل تجاری شبیه سازی بوده و فقط جهت اثبات احتمالات پیشرفت سیستم است.

ما در این قسمت به توضیح برخی از اصطلاحات و کلمات اختصاری موجود در متن می‌پردازیم:‌

 بافر کناری ترجمه : «TLB »

سطح مجرد سازی یا تجرد : Abstraction

مسیر(های) رایج متقابل : CLI

زبان توصیفی سخت افزاری : HDL

 

 

 

شبیه سازی یک سیستم کامل

 

 

به طورافزایشی ، ما باید یک سخت افزار کامپیوتری یا یک نرم افزار در زمینة کاربرد نهایی طرح نماییم. یکی از معیارهای ترکیب کننده در ارتباط با همکاری آن با بخش اجرایی است.برای مثال ، هیچ سیگنال منحصر یا دستورالعملِ اجرایی ، معیاری در وب سایت   Amazon.com ندارد. درعوض ، این معیار در ارتباط با ممانعت یک مشتری ، به طور گسترده در اجرایِ یک تحقیق بوده و تصمیم به خریداری آن می گیرد. سرویسِ کاربرنهاییِ شبیه این ، معمولاً از ترکیبی شامل: سازنده های مختلف ، تجهیزات ،‌ در شروع اجرای یک ترکیبِ استاندارد نرم افزاری و اجزاء مقدماتی ، تشکیل می شود. این تواناییِ دسترسی ، اجرا و اعتبار یک سرویسِ کابر نهایی ، معیار دیجیتالی بدون عیبی در آن نقطه به وجود می آورد.

پروژه های وسیع ، به منظور توسعة سیستمهای نهاییِ دیجیتالی بالا  هستند که در محدودة متغیری از ابزار جهت یابی شبیه سازی و روشها  و طرحها (متدولوژیها) به کار می روند.  ما می توانیم این عوامل را در طول دو بعد کلاس بندی کنیم : الف) میدان دید ( هدف ) :(( منظور موضوعی می‌باشد که مدل سازی شده است .))  ؛     ب) سطح تَجُرْد : ((منظور سطح تجردی می‌‌باشد که برای آن موضوع، مدل سازی شده است. ))

 

سطح تجرد(Abstraction )

در شروع ، بهترین مشاهده از دوچشم انداز است: رفتار ساختاری (( که چه چیزی باشد))‌و رفتار زمانی (( که چه زمانی باشد)) .

اگر این هدف برای مدل سازی فشارهای کاریِ واقعی (رئالیستیک) باشد ، بنابراین ما اصلاًقادر به ایجاد طرح های (سناریوهای) مدرن نخواهیم بود یا میدانِ دید باید سیستم کاملی باشد. این سطح تجرد (Abstraction ) باید به طور عملی به اندازة کافی برای راه اندازی کردن(Boot ) پایین باشد و سیستمهای اجراییِ(عاملهای) تجاریِ اصلاح نشده و محکهای صنعتی  را اجرا کند و نیز به میزان لازم برای حمایت مهندسی سخت افزاری به طور موقتی پایین (محدود) باشد. با این وجود، نزول سطوحِ جزئی تر مجردسازی نباید در یک شبیه سازی کلی اجرا شود که نمونة فشارِ کاریِ واقعی (رئالیستیک) را مسدود کند ؛ به عبارتی سری داده ها سایز بندی (اندازه بندی) شده و از لحاظ طولی اجرا شده است . امروزه طرحِ (سناریوی) فشارِکاریِ نهایی بالا دارای یک کُد پایه ای کلی از مسیر0^5 1 تا   10^8  است ، با اجرای طولی دستورالعملهای  10^9  تا 10^12  روی یک حافظة فیزیکی از بایتهای10^8  تا 10^11  با ذخیرة قبلی بایتهای 10^10  تا 10^13  اجرا می شود.

شبیه سازی یک سیستمِ کامل ، طرح و توسعه آن و آزمایش سخت افزارِ کامپیوتری را، پشتیبانی کرده و نرم افزاری با یک محدودة کاری شبیه سازی شده را که تقریباً در زمینة اجرای نهایی است ، حمایت می کند. در این مورد (( سیستم )) به معنی ((بعضی از زیرمجموعه های اختیاری در اجزاء دیجیتالیِ اجراکنندة کد آزمایشی ساده نیست.))  در مورد مثال  Amazon.com این موضوع شاملِ دو مشتری (Linux Desktop و Windows ) در ارتباط با یک شبکة کاری برای یک دسته از ایستگاههای کاری بوده و در اجرای نرم افزار وب و پایگاههای داده ای و چندین اجرا(کاربرد) در محدودة وظایف مخصوص کاری ، در ارتباط با ارزیابی موضوع نقش دارد.

 

بررسی Simics

 

Simics  یک رایانة شبیه سازی است . ما آن را در زمینة کاراییِ دقیق برای اجرای سیستم عاملهای اصلاح نشده طرح ریزی کردیم. ( شامل دو سیستم مثل VxWorks  و سیستم های خدماتی / Desktop  مثل  Solaris ، Linux ، Tru64 و windows Xp  ). این موضوع به اندازة کافی برای اجرای فشارهای کاری واقعی مثلِ  SPEC CPU2000 ، محکهای پایگاههای داده ای مثل کاربردهای متقابل Desktop ، TPC-C و بازیها ، سریع است. Simics  هم به اندازة کافی برای مدل سیستمهای جاسازی ، Desktop یا سری باکسهای بالا ، سوییچهای ارتباط از دور ، سیستمهای چند فرآیندی ، گروهها و شبکه هایِ همة این آیتمها ((اقلام))عمومی شده است. در همین زمان Simics انعطافِ کافی برای پشتیبانیِ مسئولیتها و کارها در ایجادِ سیکل توسعه ، داشته است؛ که شامل فعالیتهای ناجورِ ظاهرشده مثلِ طرحِ میکروپردازشگر، توسعة سیستم عامل ، مطالعاتِ الحاقیِ ناقص و متنوع کردن طرح سخت افزاری است.

پردازشگرهای شبیه سازی Simics در سطح سری دستورالعملها  ، شاملِ حالت سرپرستی کامل است. اخیراً ، Simics مدلهایی مانند :ARM ,MIPS ,Power Pc.IPF, (Hammer) 8-86-64, X86  Alpha ,Ultra Sparc  را حمایت می کند. Simics  یک نرم افزارِ خالص بوده و بخشهای اخیر شاملِ Linux(Alpha,Power Pc,X86)  ، Solaris / Ultra Sparc ، Tru 64/Alpha,and windows 2000/X86  است.

شکل یک نشان می دهد که چندین نمونه از سیستمهای شبیه سازی Simics روی تنوعی از طراحان پردازشگر پایه ریزی شده است که هر کدام یک سیستم عامل مشابه را اجرا می کنند.

 

یک ماشین X86 ( پنتیوم 2 ) اجرا کنندة Red hat 6.2  و یک KDE desktop  ( ویندوز وسیع در مرکز ) ((که)) نشان دهندة دو دلیلِ  Netscape در ارتباط با خدماتِ حقیقی وب است.

 -دومین ماشینِ X86 ( بالا سمت راست ) که نمایانگرِ صفحة Login ویندوز NT است.

 -یک ماشینِ Ultra Sparc 2 اجراکنندة Solaris 8 و MySQL  (چپ،قسمت وسط شکل) .

-یک Simics خط رایجی برای یک مدلِ Ultra Sparc 3 قبل از نیرومند شدن (Powering On ) (( پایین ،سمت چپ )) است. یک مدلِ ) Itanium ) ایتانیوم IPF  اجراکنندة RedHat7.2  است. ((بالا،سمت چپ))

یک ماشین Power Pc  اجراکنندة VxWorks ( قسمت مرکز،بالا) و یک ماشین (Hammer)X86-64  اجراکنندة ویندوز XP ( پردازشگر شبیه سازی شده که اجراکنندة روش Legacy ((32 بیتی)) است ) ؛(( پایین، سمت راست ویندوز است )). این ویندوز در گوشة سمت چپ، پایین شکل 1 ، خط رایجِ Simics  را نشان می دهد. همة Simics های ویندوزهای رایجِ دیگر مخفی هستند. عکس این صفحه از یک سیستمِ پردازشگر دوگانه پنتیوم 3  Mhz 933  با 512 مگابایت حافظه گرفته شده است که اجراکنندة RedHat Linux 7.2 است. همة فرآیندهای Simics  در همین سیستم اجرا شده است. به عبارتی برای مدلهای پردازشگر ، Simics شاملِ دستگاههایی بوده که برایِ اجرای میان افزارِ واقعی و مشتقات دستگاه به اندازه کافی دقیق است. برای مثال ، Simics/Ultra Sparc 3  راه انداز PROM واقعی را اجرا خواهد کرد و Simics / x86 به طور دقیق نصب شده و windows xp را از دیسکهای نصب شده ، اجرا می کند.

 

Simics هر ماشین هدف را به صورت یک گره ، ایجادِ یک منبع مثل خدماتِ وب ، یک سرویس دهندة وب ، طرح یک پایگاه داده ای ، یک راه پیما (router ) و یا یک کاربر ((ارباب رجوع)) نشان می دهد. یک simics  منفرد ، به عنوان مثال می تواند تعداد یک یا بیشتر از گره- های همان طراح های اولیه را شبیه سازی کند. حال ببینیم simics  مرکزی چیست؟ ؛ گره ها یا منحنی های هیتروژنوس می تواند با شبکه ای مرتبط شود که توسط ابزاری کنترل می شود ، به این ابزار simics  مرکزی گفته می شود. در شکل 1 simics  مرکزی برای ارتباط با دو عامل Netscape   در desktop مرکزی برای سرویس دهنده های وبِ حقیقی استفاده شده است.

Simics  مرکزی یکی از اجزاء کلیدی بوده و باعث ایجاد سیستمهای توزیع شدة کاملی می شود. شکل 2 یک نمونه از ایجاد شبکه ، توصیف یک وبِ پایه ریزی شده بر اساسِ مسیر مورد بحث را با استفاده از سه راه حلِ پایگاه داده ای نشان می دهد. شبیه سازی برای استفاده به طور متقابل ،‌سریع است. با استفاده از موس یا صفحه کلید ،‌استفاده کننده ها می توانند یک ورودی برای کاربرهای((ارباب رجوعهای )) A و B  ارائه دهند که با ویندوز ، روی سیستم های ویندوزِ میزبان اجرا می شود. مرکزِ Simics به عنوان یک راه پیما(router ) عمل می کند که به استفاده کننده ها اجازه می دهد، در شبکة شبیه سازی شده از محیط میزبان ، ردیابی کنند.

با این مقدمه چینی ( Setup ) ، ما می توانیم به طورمتقابل گروههای مورد بحث مختلفی روی سرویس دهندة وب را جستجو کرده «بررسی کرده» و پیامهای جدیدی با پاسخ قابل قبول بنویسیم. گروههای بازیافتی تقریباً 30 ثانیه دقت می گیرند.

چیزی که باید در اینجا مورد توجه قرار گیرد ، این است که این حالت یک مقدمه چینی «setup » شبیه سازی شدة کامل است. برای مثال ، هر عامل simics  می تواند با یک مرحلة منفرد، مرحلة بازرسی و غیره متوقف شود که در این نمونه ، فرآیندهای simics  به طور اتوماتیک فرآیند زمانی کلیِ شبیه سازی شدة نگارش شده را متوقف می کند. این شبیه سازی می تواند در هر مکانی به ترافیک حافظه کمک کند، در هر مکانی نقاط را بشکند و هر کدام از سیستمها را اصلاح کند،« مثل اضافه کردن دستورالعملهای جدید یا مخازن » این عامل می‌تواند ضبط شود و زمانِ همة استفاده کننده های وارد شده راثبت کند.

- برای مثال ؛ صفحه کلید و موس  در محـدودة درستی اجرایشـان ،این شبیـه سازی می تواند مقدمه چینی درستی برای یک نقطة کنترلی ضبط کرده و آن را دوباره به صورت تکرار عوامل درآورد.

 

 

 

کاربرد هایی برای شبیه سازی یک سیستم کامل

 

شکل 3 یک ارتباطات کاری عمده ای در توسعة یک سیستم دیجیتالی نهاییِ کامل ، نشان می دهد. توجه کنید که شبیه سازی سیستمِ کامل بسیاری از ارتباطات را توسطِ ایجاد یک کامپوتر منفرد در یک سیکل پیشرفته کم می کند.

هر کدام از این کارها می تواند از یک مدل سیستم موجود به طرفِ مدل موجود دیگری در فضای خودش حرکت کند. به عبارت دیگر هر کار می تواند با یک خلاصه ای شروع شده و توسط طرح - مفاهیم نادرست ، که حاکی از سیستم واقعی آینده است ، انجام شود. این زمان، برای منافعِ تجاری و کاهش ریسکِ اجرای صنعتِ الکترونیک است. Simics  اخیراً به طور تجاری در همة زمینه ها که در شکل 3 لیست شده است ، استفاده می شود.

 

 

طرح ریزپردازنده

 

طرحِ ایجاد پردازشگرِ بعدی یک محدودة اجرایی مقدماتی برای شبیه سازی است. ردیابی رایج بر اساس تکنیکهای شبیه سازی دارای محدودیتهای شناخته شده ایست ، که شبیه سازی یک سیستم کامل ، تصمیم به حل کردنِ آن دارد. مهمترین فشارهای کاری پردازشگر چندتایی((چندین پردازنده ای)) با حافظة سیستم فرعی در ارتباط است و مدیرِ اجرایی حافظة سیستم عامل بوده و برنامه‌ریزیِ اصلی است که برای کامپیوتر در ردیابی یک برپایی(setup)غیر مشابه ، دشوار است . قابلیتهای simics ، دربرگیرندة مخزن تقریبی و مدلهای زمانی Io  است که باعث ایجاد اولین تقریب در خواستی برای سیستم موجود بعدی می‌شود . این سرویس های تقریبی بعنوان یک کامپیوتر (شبیه‌سازی شده) برای مخزن‌های موجود ، جهت ورود به سیکل مدلهای ریزِ معماری ، دقیق هستند .

Simics  می‌تواند با سرویس د‌هی فشار‌های کاری کاملاً مشخص سنجش شود،مثل tpc-cاما در آزمایش فشار‌های کاری بطور متناوب نشان داده شده است .

بعضی از مدلهای اخیر پردازشگر simics ، شامل پشتیبانی از فرآیندِ خواسته شدة خروجی است. این مدلها واحدهای اجرایی نامحدودی داشته و دوبار با یک حائل قابل شکل دهیِ  خواسته شده و  با سرعتِ  دوباره ثبت نام می کند، اما نه به صورت خطوط لوله ای. داده های استعمال شده    بس   برای Simics  به هم مرتبط بوده و می تواند نقش برگشتی داشته باشد، زمانیکه آن استثنائات را محاسبه می‌کند. این حافظة ناقص برای موارد خروجی خواسته شده و اجرای حافظة برجستة چند بعدی بیشتر در مسیری است که در سیستمهای واقعی روی داده و این سیستمهایی است که در آینده باید ساخته شود.

ما این حمایت را برای تصحیح پیوست یک مدلِ ریز معماریِ عمومی (( Foul-blown )) است، این فلسفه ای است که Simics مدل کاربردی را تهیه کرده و یک محققی که مدل زمانی را ایجاد می‌کند.