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

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

همة کامپیوترها می‌‌‌توانند یکدیگر را شبیه‌سازی کنند که این یک نتیجة بلاواسطه از کارِ تئوری (( آلِن تورینگ و آلونزو چِرچ ))  است. طراحان کامپیوتر مسیری در استفاده از این خاصیت در پروژة ((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 مدل کاربردی را تهیه کرده و یک محققی که مدل زمانی را ایجاد می‌کند.

 

 

نظرات 2 + ارسال نظر
مهدی دوشنبه 6 شهریور‌ماه سال 1385 ساعت 09:19 ق.ظ http://www.m-m-h.blogsky.com

سلام ایا حاضر با تبادل لینک هستید اگر موافقید در نظرات وبلاگم بگویید با تشکر

من با تبادل لینک موافقم ... به وبلاگ شما لینک داده می شود

gh شنبه 8 شهریور‌ماه سال 1393 ساعت 05:24 ب.ظ http://multiprocessor.mihanblog.com

سلام ممنون از مطلب بسیار مفیدتان
موفق باشید

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد