تالار گفتمان مانشت

نسخه‌ی کامل: ریزبرنامه ریزی افقی و عمودی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
ریزبرنامه ریزی عمودی (VM) و ریزبرنامه ریزی افقی (HM) چیه؟ Huh
حسن ریز برنامه ریزی عمودی(VM) نسبت به ریز برنامه ریزی افقی(HM) اینه که در VM از ریزدستورهای کمتری استفاده میشه ولی روش HM تواناتره چون هیچ محدودیتی در برابر تغییرات و اصلاح مجموعه ریز دستورهای یک ریز عمل ایجاد نمیکنه!
برخی از محاسن HM نسبت به VM:
1) اجرای همزمان سیگنال های کنترل با مجموعه ریز دستور یکسان یعنی هر ترکیبی از سیگنال های کنترلی قابل انگیزش (Trigger) است.
2) کم بودن نسبی اجرای ریز دستورها، VM به زمان اجرای بیشتری نیاز دارد زیرا تاخیر های مربوط به رمز گشایی فیلد های ریز دستور کد شده لازم است.
توجه: در ریز برنامه ریزی عمودی باید با استفاده از رمزگشا‌، ریز عمل تولید کرد(مثه ماشین مانو)‌، ولی در ریزبرنامه ریزی افقی، ریز عملها مستقیما در ریزدستور قرار میگیرند یعنی هر بیت خود یک ریزعمل است یا یک سیگنال است و نیاز به رمزگشایی ندارد.

«این همه مطلبی بود که در کتاب معماری پوران(یوسفی) در مورد سوالت اومده بود!»
نقل قول: (من کلاً با مباحثی که توی مانو مطرح نشده مشکل دارم!)
خب پترسون رو هم بذارید کنارش!Smile

از بچه هایی که پترسون میخونن کسی آمار این دوتا مفهوم رو نداره؟
من همون مواردی که بالا گفته شده رو به زبون خودم می گم!
هدف اینجا اینه که ریز عملها رو چطوری نمایش بدهند.سه تا روش وجود داره:
1.اینه که مثلا توی دستور مربوطه اگر 32 تا بیت برای 32 تا ریزعمل داریم بیام هر کدومشو به یک ریزعمل خاص اختصاص بدیم.این میشه همون HM.توی این حالت هر کدوم از ریزعمل‌ها که بخواند می تونند همزمان با هم اجرا بشند.توی این روش اگر n تا ریز عمل داشته باشیم n تا بیت هم برای ریزعملهامون می خواهیم.
2.این روش میگه ریزعملها تک تک نباشند.این روش میگه این ریزعملها همزمان با هم اجرا نشند پس بیام از 5 بیت برای 32 ریزعملمون استفاده کنیم و اونو به ورودی یک دیکودر بدیم و خروجی دیکودر مشخص کنه که کدوم ریزعمل اجرا میشه.اینم همون VM هست.توی این روش اگر n تا ریزعمل داشته باشیم Lgn بیت برای ریزعملهامون می خواهیم.
3.یک حالت بهتره VM اینه که هر چند تا ریزعملو رو به یک دیکودر بدیم تا اگر هم دو ریزعمل قرار بود همزمان فعال باشند مشکلی پیش نیاد.
روش اول سریعه چونکه به هر کدوم یه بیت جداگونه اختصاص دادیم و هیچگونه عملیات کدینگی صورتی نمی گیره. روش دوم زمانبره چونکه دیکودر استفاده کردیم.
حالا کدوم روش هزینه کمتری داره؟
روش دوم چراکه ریز دستورمون تعداد بیت کمتری داره.
دوستان اگر اطلاعات بیشتری دارند دریغ نکنند.
لینک مرجع