تالار گفتمان مانشت
تعداد کلاک برای fetch & decode ! - نسخه‌ی قابل چاپ

تعداد کلاک برای fetch & decode ! - m@hboobe - 13 آذر ۱۳۹۱ ۰۹:۴۸ ب.ظ

سلام
قضیه اینکه تعداد کلاک ها در جزوه دکتر اجلالی و یوسفی فرق داره رو میدونم چیه
دکتر اجلالی میگن باید به اندازه تاخیر حافظه برای ثبت آدرس از pc به AR صبر کنیم که با توجه به فرکانس کلاک t1 , t2 کاری انجام نمیشه.

اما هم کتاب مانو هم جزوه یوسفی به این موضوع اشاره ای نکردند ...

حالا به الفرض یکی بیاد بگه این مرحله در چند کلاک انجام میشه اصلا قابل گفتن هست یا باید بگیم به تاخیر حافظه و فرکانس کلاک مربوط میشه؟!!

مرسی

تعداد کلاک برای fetch & decode ! - nina69 - 14 آذر ۱۳۹۱ ۰۴:۳۸ ب.ظ

میشه یه کم بیشتر توضیح بدید

تعداد کلاک برای fetch & decode ! - csharpisatechnology - 15 آذر ۱۳۹۱ ۰۴:۴۸ ق.ظ

اگه مستقیما از PC میشد به عنوان آدرس استفاده کرد چرخه ی واکشی در یک سیکل انجام میشد([ir=m[pc)
اما توی مدار شما سیکل یا چرخه ی fetch رو نمی تونیم توی یک سیکل انجام بدیم.
پس دو کلاک برای fetch داریم یکی t0 یعنی کلاک اول باعث میشه pc بریزه توی AR .
و سپس توی کلاک t1 محتوای حافظه به آدرس AR رو میخونیم و load می کنیم توی ثبات دستورالعمل یا IR .
دیکود هم فکر کنم زیاد مهم نیست و بعد از یک تاخیر کم انجام میشه و از کلاکش صرف نظر می کنیم.
[تصویر:  147251_1_1379087521.jpg]
[تصویر:  147251_2_1379087521.jpg]
==
مطلب فوق رو از جزوه ی معماری دست نویس دانشگاه امیرکبیر برات آوردم که PDF ش هم توی سایت aghazeh و mohandesyar می تونید پیدا کنید.

RE: تعداد کلاک برای fetch & decode ! - nina69 - 15 آذر ۱۳۹۱ ۰۸:۴۳ ب.ظ

(۱۴ آذر ۱۳۹۱ ۰۴:۵۳ ب.ظ)mhbftdb نوشته شده توسط:  
(14 آذر ۱۳۹۱ ۰۴:۳۸ ب.ظ)nina69 نوشته شده توسط:  میشه یه کم بیشتر توضیح بدید

- کدوم جمله رو متوجه نمیشید؟
- شما جزوه دکتر اجلالی رو میخونید ؟

من از پوران میخونم این قسمت ها رو اصلا نگفته
کلا با کلاک مشکل دارم

ممنونم csharpisatechnology،mhbftdb

RE: تعداد کلاک برای fetch & decode ! - nina69 - 16 آذر ۱۳۹۱ ۱۰:۰۵ ب.ظ

(۱۶ آذر ۱۳۹۱ ۱۲:۰۲ ق.ظ)mhbftdb نوشته شده توسط:  مطالبی که csharpisatechnology قرار داده رو به هیچ وجه نخونید (ضمن احترام کامل به ایشون)

مطالب غلط وحشتناکی در داخل این مطلب هست

متاسفانه من پوران نخوندم که راهنمایی تون کنم. ولی در هر حال جملات من رو سعی کنید بخونید دوباره. یا جزوه و ویس دکتر اجلالی رو حتما گوش بدید
ممنون
میشه بگید کجاش اشتباه
اگه هم میتونید یه خورده توضیح بدید درباره این قسمت

تعداد کلاک برای fetch & decode ! - m@hboobe - 16 آذر ۱۳۹۱ ۱۰:۵۴ ب.ظ

(۱۶ آذر ۱۳۹۱ ۱۰:۰۵ ب.ظ)nina69 نوشته شده توسط:  میشه بگید کجاش اشتباه
اگه هم میتونید یه خورده توضیح بدید درباره این قسمت

سلام
حافظه برای اینکه اطلاعات از اون بخونیم یا بخوایم در اون بنویسیم مقداری تاخیر داره در اینجا حافظه ۱۲۰نانو ثانیه تاخیر داره.
مموری همیشه دو ثبات داره که AR آدرس به حافظه میدهد و DR که دیتا از حافظه در اون نوشته میشه یا اینکه حافظه در DR می نویسه.

برای اینکه ما بتونیم عملیات fetch رو انجام بدیم باید آدرس دستور العمل بعدی را به حافظه بدهیم پس باید pc رو AR بریزیم
برای اینکه آدرس مورد نظر که الان در AR هست رو بریم در حافظه پیدا کنیم و مقدار رو در ثبات DR بنویسیم باید به اندازه تاخیر حافظه صبر کنیم تا داده بطور کامل در DR نوشته بشه. خب در اینجا یه پالس ۵۰نانو ثانیه زمان میبره پی قطعا بیشتر یک پالس زمان نیاز داریم تا این داده را در ثبات بنویسیم ۵۰ثانیه میگذرد هنوز نوشتن تمام نشده ۵۰ ثانیه دیگه باز صبر که میشه ۱۰۰نانو ثانیه قطعا در پالس بعدی دیتا در ثبات نوشته شده که میشه t3.

RE: تعداد کلاک برای fetch & decode ! - nina69 - 16 آذر ۱۳۹۱ ۱۱:۴۶ ب.ظ

(۱۶ آذر ۱۳۹۱ ۱۰:۵۴ ب.ظ)m@hboobe نوشته شده توسط:  
(16 آذر ۱۳۹۱ ۱۰:۰۵ ب.ظ)nina69 نوشته شده توسط:  میشه بگید کجاش اشتباه
اگه هم میتونید یه خورده توضیح بدید درباره این قسمت

سلام
حافظه برای اینکه اطلاعات از اون بخونیم یا بخوایم در اون بنویسیم مقداری تاخیر داره در اینجا حافظه ۱۲۰نانو ثانیه تاخیر داره.
مموری همیشه دو ثبات داره که AR آدرس به حافظه میدهد و DR که دیتا از حافظه در اون نوشته میشه یا اینکه حافظه در DR می نویسه.

برای اینکه ما بتونیم عملیات fetch رو انجام بدیم باید آدرس دستور العمل بعدی را به حافظه بدهیم پس باید pc رو AR بریزیم
برای اینکه آدرس مورد نظر که الان در AR هست رو بریم در حافظه پیدا کنیم و مقدار رو در ثبات DR بنویسیم باید به اندازه تاخیر حافظه صبر کنیم تا داده بطور کامل در DR نوشته بشه. خب در اینجا یه پالس ۵۰نانو ثانیه زمان میبره پی قطعا بیشتر یک پالس زمان نیاز داریم تا این داده را در ثبات بنویسیم ۵۰ثانیه میگذرد هنوز نوشتن تمام نشده ۵۰ ثانیه دیگه باز صبر که میشه ۱۰۰نانو ثانیه قطعا در پالس بعدی دیتا در ثبات نوشته شده که میشه t3.
مرسی محبوبه جان

تعداد کلاک برای fetch & decode ! - csharpisatechnology - 17 آذر ۱۳۹۱ ۱۲:۲۸ ق.ظ

آقا یکی بیاد اینجا رو سامون بده
آیا جواب ما درسته آقای مدیر؟
اگه هست یا نیست لطفا اساتید با سواد مثل ESI یا JOOYBARI یا AZAD و غیره بیان بحث کنن.

تعداد کلاک برای fetch & decode ! - esi - 17 آذر ۱۳۹۱ ۰۲:۳۳ ق.ظ

انگار داره دعوا میشه تو این تاپیک.
در مورد اینکه بگیم یه کاری در چند مرحله انجام میشه نیاز به دونستن کلاک نیست، تویه سیستم واقعی کلاک ها سنکرون هستن، یعنی همه اجزای CPU داره بایه فرکانس کاری کار می کنه و فرکانس حافظه هم مشخص هستش. وقتی گفته میشه یه کار تو چند کلاک انجام میشه یعنی شما باید با توجه به معماری داده شده پردازنده ، باید ریز اعمال منطقاً مجزا و با ترتیب درست رو بگید، یعنی کارهایی که باید حتما در کلاک های مجزایی انجام شوند. این کارها مسلما یا با هم وابستگی داده ای دارن(مثل خوندن از PC و افزایش اون که در یک کلاک ممکن نیست و یا کاهش و افزایش ثبات که در یک کلاک بی معنی است) یا معماری پردازنده اجازه همزمانی رو نمیده(مثلا داده مستقیما از حافظه نمی تونه بره داخل یه ثباتی و باید اول بره داده DR و بعد بره داخل ثبات مد نظر).
از این نظر جواب سوالتون اینه که به فرکانس کاری مدار ربطی نداره و ۲ تا بحث کاملا مجزا هست، علت اصلیشم همزمانی اجزای پردازنده است، اما سرعت در فرکانس حافظه واقعا همیشه مطرحه و دقیقا به اندازه تاخیر حافظه همواره پردازنده تاخیر داره و کاریشم نمیشه کرد و به همین علت دارن هر روز فرکانس کاری حافظه رو بالا می برن و یا علت اصلی استفاده از کش هم همین مساله است.
در مورد جواب دوستمون csharpisatechnology هم اشکالاتی هست مثل اینکه در RTL سمت چپ نمی تونه گذرگاه باشه چون منطقا معنی نداره و قرار دادن داده در گذرگاه به مقصد و مبدا بستگی داره، و چند اشکال دیگه، البته دوستان دیگه هم اشکالاتی داشتن مثلا اینکه سمت چپ فقط میتونه رجیستر باشه در حالی که سمت چپ حافظه هم می تونه باشه(برای عمل نوشتن در حافظه) و یا ...
البته مهم نیست و برای رفع همین اشکالات دوستان سوال مطرح می کنن تا مشکلاتون حل بشه. اگه سوال دیگه ای در مورد دستورات RTL و درست و غلط بودن دستور و ... دارید می توند تاپیک مجزا درست کنید تا جواب داده بشه .
در کل این بحث خیلی مهمه امازیاد سخت نیست و کافیه منطق ترتیب اجرای ریزدستورات و نحوه کنترل و اتصال اونها رو بدونید.
در مورد کتاب مانو، این کتاب واقعا کتاب خوبیه، اشکالاتی رو هم که دوستمون گفتن نمیشه گفت اشکال،تو کتاب مانو برای درک کارهایی که به طور همزمان انجام میشه رو در کنار دستورات RTL نوشته، لزوما اینها دستورات RTL نیستن اما برای درک بهتر کار نوشته شده و واقعا نمیشه بهش گفت اشکال. من یادم نمیاد تو کتاب مانو سمت چپ RTL یه گذرگاه رو نوشته باشه. در کل جهت درک بیشتر مطالب گفته شده .

RE: تعداد کلاک برای fetch & decode ! - narges_r - 17 آذر ۱۳۹۱ ۰۳:۵۲ ق.ظ

(۱۷ آذر ۱۳۹۱ ۰۲:۳۳ ق.ظ)esi نوشته شده توسط:  ا
در مورد جواب دوستمون csharpisatechnology هم اشکالاتی هست مثل اینکه در RTL سمت چپ نمی تونه گذرگاه باشه چون منطقا معنی نداره و قرار دادن داده در گذرگاه به مقصد و مبدا بستگی داره، و چند اشکال دیگه، البته دوستان دیگه هم اشکالاتی داشتن مثلا اینکه سمت چپ فقط میتونه رجیستر باشه در حالی که سمت چپ حافظه هم می تونه باشه(برای عمل نوشتن در حافظه) و یا ...

RTL یعنی Register Transfer Language
یعنی زبان توصیف ثبات! دکتر اجلالی در اولین جلسه کلاسشون میگن در RTL نویسی حتما باید عمل انتساب به ثبات باشه و ما فقط میتونیم در ثبات بنویسیم و هیچ وقت نمیشه در سمت چپ Assignment سیم یا چیزی غیر از ثبات قرار داد و قرار دادن چیزی غیر از ثبات معنی نداره
میدونیم که حافظه دو ثبات DR و AR داره که در یکی داده و در دیگری ادرس قرار میگیره، حتی وقتی میخوایم در حافظه هم بنویسیم داده مورد نظر رو در ثبات حافظه (DR) میریزیم
به نظر من برا مطالعه این درس از کتاب مانو استفاده نکنید

تعداد کلاک برای fetch & decode ! - azad_ahmadi - 17 آذر ۱۳۹۱ ۰۲:۰۰ ب.ظ

سلام.
کتاب مانو کتاب بدی نیست، هر کتابی ممکنه اشکال داشته باشه و برای همینه که در پیشگفتار میگه اگه اشکال داره اطلاع بدید. سپیدنام، کتاب مانو رو فقط ترجمه کرده، پس اگه اشکالی هم داشته باشه در کتاب اصلی M.mano هست و نه ترجمه.
ذات سوال برای اینکه دستوری در چند کلاک اتفاق می افته بستگی به معماری ماشین داره و از ماشینی به ماشین دیگه ممکنه تفاوت داشته ممکنه در سوالی از IR اسمی به میان نیاورده باشه، پس باید محتویات حافظه رو به DR یا TR انتقال بدیم. درهر صورت باید به این نکته توجه بشه که اولا چه ثباتهایی در سیستم هستن، کدوم ثبات ها از گذرگاه مشترک ورودی یا خروجی دارن، مثلا AC از گذرگاه ورودی نداره(فقط از DR و ALU و ثبات ورودی) ، بعد از اون باید به این نکته توجه بشه که دوتا دستور که باهم تناقض دارن در یک کلاک پالس اورده نشن، مثلا نمیشه که در یک کلاک هم مقدار PC رو افزایش داد و هم مقدار PC رو به AR منتقل کرد (اشاره به t0 در معماری مانو).
و دقت کنید که در صورت سوال به یکی از دو کلمه "حداقل" و "حداکثر" اشاره کرده که دستور باید در کلاک پالس ها انجام شود.
و همچنین کلاک پالس ها باید طوری انتخاب شوند که همزمان محتوای ۲ یا چند ثبات باهم و همزمان بر روی گذرگاه قرار نگیرن.