**شبیه‌ساز معماری رایانه** برنامه‌ای است که اجرای معماری کامپیوتر را شبیه‌سازی می‌کند.

از شبیه‌سازهای معماری رایانه برای اهداف زیر استفاده می‌شود:

* کاهش هزینه با ارزیابی طرح‌های سخت‌افزاری بدون ساخت سیستم‌های سخت‌افزاری فیزیکی.
* امکان دسترسی به سخت‌افزار غیرقابل دستیابی
* افزایش دقت و حجم داده‌های عملکرد کامپیوتر.
* معرفی توانایی‌هایی که به‌طور معمول در سخت‌افزار واقعی مانند اجرای کد به عقب در صورت شناسایی خطا یا اجرای سریعتر از زمان واقعی امکان‌پذیر نیست.

دسته‌بندی‌ها
------------

شبیه‌سازهای معماری رایانه را می‌توان بسته به زمینه شان در دسته‌های مختلفی طبقه‌بندی کرد:

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

### شبیه‌سازهای تمام سیستم

یک **شبیه‌ساز تمام سیستم، شبیه** سازی معماری مبتنی بر اجرا در سطحی از جزئیات است که پشته‌های کامل نرم‌افزار از سیستم‌های واقعی می‌توانند بدون هیچ گونه تغییری روی شبیه‌ساز اجرا شوند. یک شبیه‌ساز کامل سیستم سخت‌افزار مجازی را ارائه می‌دهد که مستقل از ماهیت رایانه میزبان است. مدل کامل سیستم معمولاً شامل هسته‌های پردازنده، دستگاه‌های جانبی، حافظه‌ها، گذرگاه‌های اتصال و اتصالات شبکه است. شبیه سازها شبیه‌سازهای کاملی از سیستم هستند که به جای سخت‌افزار توسعه، از سخت‌افزار منسوخ شده تقلید می‌کنند.

ویژگی تعریف شبیه‌سازی کامل سیستم در مقایسه با شبیه‌ساز مجموعه دستورالعمل این است که مدل اجازه می‌دهد تا درایورهای دستگاه واقعی و سیستم عامل‌ها، نه فقط برنامه‌های تک، اجرا شوند؛ بنابراین، شبیه‌سازی کامل سیستم امکان شبیه‌سازی تک رایانه‌ها و گره‌های رایانه ای شبکه ای با تمام نرم‌افزارهایشان از درایورهای دستگاه شبکه گرفته تا سیستم عامل‌ها، پشته‌های شبکه، میان افزار، سرورها و برنامه‌های کاربردی را فراهم می‌کند.

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

### شبیه‌ساز دقیق چرخه

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

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

منابع
-----

1. ↑  Debugging and Full System Simulation