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

نسخه‌ی کامل: سوال در مورد پایپ لاین
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
چرا در جواب سه دستوری که با هم وارد پردازنده میشنو همزمان با هم اجرا کرده؟؟؟؟ چون گفته "با هر واکشی میتوان 3دستور را وارد پردازنده کرد" ما باید همزمان واکشی هارو در نظر بگیریم؟؟
توی جواب گفته برای سه دستور اول 5 کلاک میخواد. واسه چی؟ من اصلا متوجه جواب نشدم ممنون اگه دوستی بیاد کامل بگه/
(15 مهر 1392 03:19 ب.ظ)mary1234 نوشته شده توسط: [ -> ]چرا در جواب سه دستوری که با هم وارد پردازنده میشنو همزمان با هم اجرا کرده؟؟؟؟ چون گفته "با هر واکشی میتوان ۳دستور را وارد پردازنده کرد" ما باید همزمان واکشی هارو در نظر بگیریم؟؟

سلام وقت بخیر.
اول ابنکه اگر به فصل پردازنده مرکزی دقت کنید، میتونیم از یه ثبات حداقل۲۴بیتی برای IR استفاده کنیمکه در این صورت اگر دستوراتمون ۸ بیتی باشن،با یه بار مراجعه به حافظه میتونیم ۳تا دستور رو توی این ثبات لود کنیم. مثلا از بیت ۰ تا ۷ برای دستور اول.۸-۱۵دستور دوم و ۱۶- ۲۳ دستور سوممون باشه.

با توجه به گفته مسئله وقتی 3تا دستورالعمل لود میشه پس یعنی در هر مرحلع ۳ دستور روی پاپلاین قرار میگیره.
خب با توجه به گفته مسئله فقط دوتا از این 3دستور میتونن همزمان Execute شن. خب شکلو که ببینیم 2دستور اول همزمان Ex میشن که توو شکلم مشخصه دستور سوم قسمت Exش نمیتونه زیر اون دوتای دیگه باشه چرا؟(چون گفته فقط دوتاشون همزمان اجرا میشه)
در نتیجه باید به اندازه یه کلاک مکث کنه تا اوندوتا اجرا شن پس در نهایت سه دستور اول ۵ کلاک طول کشیدن(۲تا دستور اول 4 کلاک و دستور سوم با یه کلاک مکث،مجموعا ۵ کلاک)
خب الان ما ۳ تا دستورو توو ۵ کلاک انجام دادیم.میمونه چنتا دستور دیگه؟۳۳-۳ برابر ۳۰ دستور دیگه.

به شکل نیگاه کنید.ما با یهدستور فچ 3 دستورالعمل اوردیم روی پایپلاین،برای بعدی Fetch های بعدی هم هر دفعه ۳ دستور میاریم که توو شکل با fetch دوم ۳تا دستور دیگه اومده.همونطور که میدونیم در هر زمان فقط یه دسترسی به حافظه میتونیم داشته باشیم برای fetch .پس fetch دوم زیر خونه F هیچکدوم از اون سه تا بالایی نمیتونه باشه،
یه نکته کوچیکم بگم، ببینید توی دستوراتی که ثبات ir میتونه چند دستورالعمل رو روی خودش بریزه،هر دفعه با شیفت به راست یه دستورالعمل اجرا میشه مثلا
ثبات ما ۲۴ بیتی هستش،و دستوراتمون ۸ بیتی پس ما روی این ثبات میتونیم ۳ دستور بیاریم.حالا اگه فقط یه پردازنده داشته باشیم،باید در هر کلاک یکی از این دستوراتو اجرا کنیم.مثلا در کلاک اول دستور اول که ۰-۷ هستش رو اجرا میکنیم.بعد کل ثبات ۸ بیت به راست شیفت میخوره ودو دستور دیگه که توو خونه ۸-۱۵ و ۱۶ تا ۲۳ هستن ۸ بیت میرن سمت راست و توو خونه ۰-۷و ۸-۱۵ قرار میگیرن به همین ترترییب با هر کلاک یه دستور اجرا میشه.
حالا برگردیم به مسئله خودمون چون دوتا دستور همزمان اجرا میشن،پس دو دستور اول زیر هم و با هم مثلا رو دوتا پردازنذه اجرا میشن ولی دستور سوممون باید مکث کنه تا دیکود و اجرای دوتا بالایی تمام بشه واسه همین دستور سوم خونه Dش حاشور خورده و منتظره تا اوندوتا دیکودشون تمام شه و بعدش شیفت پیدا کنه تا بتونه اجرا شه.
خب دستورات بعدیم که گفتیم زیر F نمیتونه باشه، یه مکثم که دادیم اون بالا .کلا سه دستور بعدی توو قسمت Dی دستور اخر میتونن Fetch بشن که توو عکس مشخصه و مثه بالایی ها هم اجرا میشه که توو شکل میبینم فقط دو کلاک اضافه داره دیگه.
خب نتیجه گیری ۳ دستور اول که کلا ۵ کلاک شد.میمونه ۳۰ دستور دیگه. توو هر فچ ۳ دستور میخونیم و میاریم رو پایپ پس کلا برای ۳۰ دستور تقسیم بر ۳ میشه ۱۰ بار باید به حافظه مراجعه کنیم.یعنی ۳۰ تا دستور ۳ تا ۳تا میخونیمشون.
خب برای این ده بار هم که گفتیم هر بار ۲ کلاک اضافه میشه. در نهایت ۲*۱۰ میشه ۲۰ کلاک اضافع.یرای این ۳۰ دستور باقی مانده
5 کلاک که ۳ دستور اول طول کشید
۲۰ کلاکم ۳۰ دستور بعدی طول کشید
۲۰+۵ برابره ۲۵

هرجاشو متوجه نشدین راحت باشین و سوال کنید
سلام ممنون بابت جواب. فقط یه سوال. اون 4 کلاک مربوط به 2 دستور اول دقیقا مربوط به کدوم قسمتها هست؟
(27 دى 1392 10:56 ب.ظ)h_kh نوشته شده توسط: [ -> ]سلام ممنون بابت جواب. فقط یه سوال. اون 4 کلاک مربوط به 2 دستور اول دقیقا مربوط به کدوم قسمتها هست؟

سلام خواهش میکنم
۴ کلاک میشه، Fetch,Decode,Execute,Store هرکدوم توو یه کلاک انجام میشه که سرجمع میشه 4 کلاک برای دو دستور اول

Sent from my GT-N5100 using Tapatalk HD
لینک مرجع