دستورالعمل در هر چرخه
این نوشتار نیازمند پیوند میانزبانی است. در صورت وجود، با توجه به خودآموز ترجمه، میانویکی مناسب را به نوشتار بیفزایید. |
![]() | برای تأییدپذیری کامل این مقاله به منابع بیشتری نیاز است. |
دستورالعملها در هر چرخه (IPC) در معماری کامپیوتر که عموماً دستورالعملهای هر کلاک نامیده میشود، یکی از جنبههای عملکرد پردازنده است: میانگین تعداد دستورالعملهای اجرا شده برای هر چرخه کلاک. این معکوس ضربی چرخههای دستورالعمل است.[۱]
در حالی که نسلهای اولیه CPUها تمامی مراحل اجرای یک دستور را متوالیاً انجام میدادند، CPUهای مدرن میتوانند کارهای زیادی را موازی با یکدیگر انجام دهند. از آنجا که نمیتوان بارها صرفاً سرعت کلاک را دو برابر کرد، خطوط لوله دستورالعمل و طراحی پردازنده فوقاسکالر تکامل یافتهاند و در نتیجه CPUها میتوانند از طیف وسیعی از واحدهای اجرایی به صورت موازی استفاده کنند - دستورالعملهای دریافتی را بهمنظور بهینهسازی آنها دنبال کنند. این منجر به این میشود که دستورالعملها در هر چرخه تکمیل شده بسیار بالاتر از ۱ باشد و مسئول بسیاری از بهبود سرعت در نسلهای بعدی CPU است.
محاسبه IPC
[ویرایش]محاسبه IPC از طریق اجرای یک مجموعه کد، محاسبه تعداد دستورالعملهای سطح ماشین مورد نیاز جهت کامل کردن آن، سپس استفاده از تایمرهای با عملکرد بالا برای محاسبه تعداد چرخههای کلاک مورد نیاز برای کامل کردن آن بر روی سختافزار واقعی صورت میگیرد. نتیجه نهایی از تقسیم تعداد دستورالعملها بر تعداد سیکلهای کلاک CPU بدست میآید.
تعداد دستورالعملها در ثانیه و عملیات نقطه شناور در ثانیه برای یک پردازنده را میتوان با محاسبه حاصل ضرب تعداد دستورالعملها در هر چرخه با سرعت کلاک (چرخهها در ثانیه بر حسب هرتز) پردازنده مورد نظر به دست آورد. تعداد دستورالعملها در هر ثانیه شاخصی است که عملکرد احتمالی پردازنده را به تقریب نشان میدهد.
دستورهای اجرا شده در هر کلاک برای یک پردازنده به خصوص یک عدد ثابت نیست. بلکه بستگی به این دارد که چگونه نرمافزار اجرا شده با پردازنده در واقع با کل ماشین، به ویژه سلسله مراتب حافظه در تعامل است. با این حال، برخی از خصوصیات پردازندهها گرایش به طراحیهایی با مقادیر IPC بالاتر از حد میانگین دارند. حضور چند واحد منطقی حسابی (یک ALU یک زیرسیستم پردازشگر است که میتواند عملیات حسابی و منطقی مقدامتی را انجام دهد) و خطوط لوله کوتاه. هنگام مقایسه مجموعه دستورالعملهای گوناگون، یک مجموعه دستورالعمل سادهتر ممکن است به رقم IPC بالاتری نسبت به اجرای مجموعه دستورالعملهای سختتر با استفاده از تراشه یکسان دست یابد. با این حال، مجموعه دستورهای پیچیدهتر ممکن است بتوانند با دستورالعملهای کمتر به کار سودمند تری دست یابند؛ بنابراین مقایسه ارقام IPC بین مجموعههای دستورهای مختلف (مثلا x86 در مقابل ARM) معمولاً بیفایده میباشد.
عوامل مؤثر بر IPC
[ویرایش]مقدار دستورالعملها در هر ثانیه را میتوان با یک IPC بالا و سرعت کلاک پایین (مانند ایامدی آتلون) یا از IPC پایین و سرعت کلاک بالا مانند اینتل پنتیوم ۴ و تا گسترده پایینتر AMD بولدوزر محاسبه کرد. هر دو طراحی پردازنده معتبری هستند و انتخاب بین این دو اغلب توسط تاریخچه، محدودیتهای مهندسی یا فشارهای بازاریابی دیکته میشود. با این حال، IPC بالا با فرکانس بالا همیشه بهترین عملکرد را ارائه میدهد.
سرعت کامپیوتر
[ویرایش]کار مفیدی که میتوان با هر کامپیوتری انجام داد علاوه بر سرعت پردازنده به عوامل زیادی بستگی دارد. این عوامل شامل معماری مجموعه دستورالعمل، ریزمعماری پردازنده و سازماندهی سیستم کامپیوتری (مانند طراحی سیستم ذخیرهسازی دیسک و قابلیتها و عملکرد سایر دستگاههای متصل)، کارایی سیستم عامل و سطح بالا میباشد.
منابع
[ویرایش]- ↑ John L. Hennessy, David A. Patterson. "Computer architecture: a quantitative approach". 2007.