
زیرساخت ارتباطات و فناوری اطلاعات
یک پردازنده تکسیکلی مقدار عظیمی از زمان بیکاری سختافزار را هدر میدهد چون هر دستور باید در طول کندترین دستور ممکن جا شود. این مقاله پایپلاینینگ را بهعنوان یک راهحل معرفی میکند، تشبیه کلاسیک خط تولید را توضیح میدهد، پایپلاین استاندارد پنجمرحلهای را تجزیه میکند، و توضیح میدهد چرا پایپلاینینگ توان عملیاتی دستورات را افزایش میدهد بدون اینکه هیچ دستور منفردی را سریعتر کند.
همپوشانی اجرای دستورات به بیش از اجرای سریعتر همان سختافزار تکسیکلی نیاز دارد؛ نیازمند جداسازی فیزیکی هر مرحله پایپلاین با عناصر ذخیرهسازی و تکرار منطق کنترلی در سراسر مراحل است. این مقاله توضیح میدهد رجیسترهای پایپلاین چگونه وضعیت دستور را بین مراحل حفظ میکنند و سیگنالهای کنترلی چگونه همراه با داده در سراسر پایپلاین حرکت میکنند.
همپوشانی اجرای دستورات یک مشکل جدی ایجاد میکند وقتی یک دستور به نتیجهای نیاز دارد که دستور قبلی هنوز محاسبه آن را تمام نکرده است. این مقاله توضیح میدهد خطرهای داده چه هستند، forwarding چگونه بیشتر آنها را بدون از دست دادن هیچ کارایی حل میکند، و چرا برخی موقعیتها همچنان نیاز به توقف پایپلاین دارند.
شاخهها یک مسئله منحصربهفرد برای پایپلاینینگ ایجاد میکنند: پردازنده باید دستور بعدی را پیش از آنکه حتی بداند آیا یک شاخه گرفته خواهد شد یا نه، واکشی کند. این مقاله توضیح میدهد خطرهای کنترلی چه هستند، پیشبینی شاخه و حل زودهنگام چگونه تلاش میکنند هزینه آنها را به حداقل برسانند، و وقتی یک پیشبینی نادرست از آب درمیآید چه اتفاقی میافتد.
هر دستوری آنطور که انتظار میرود اجرا نمیشود — برخی شرایط خطایی مانند یک opcode نامعتبر یا سرریز محاسباتی را فعال میکنند که پردازنده باید با امنیت به آنها پاسخ دهد. این مقاله توضیح میدهد استثناها چه هستند، یک پردازنده پایپلاینشده چگونه آنها را بدون خراب کردن وضعیت برنامه تشخیص داده و مدیریت میکند، و چرا استثناها مشابه خطرهای کنترلی رفتار میشوند.
موازیسازی سطح دستور: اجرای بیش از یک دستور بهطور همزمان
مفاهیم نظری پایپلاین در پردازندههای تجاری واقعی شکل مشخصی به خود میگیرند، که بسته به اهداف طراحیشان از نظر عمق پایپلاین و عرض صدور بهطور گسترده متفاوتاند. این مقاله مقایسه میکند ARM Cortex-A53 و Intel Core i7 چگونه پایپلاینینگ را متفاوت برای کارایی توان در مقابل کارایی خام پیادهسازی میکنند، سپس نشان میدهد موازیسازی سطح دستور چگونه ضرب ماتریس را در عمل تسریع میکند.
پس از پوشش datapath ها، پایپلاینینگ، خطرها، و مقایسههای پردازنده دنیای واقعی، وقت آن است چند تصور غلط پایدار درباره نحوه رفتار واقعی پردازندهها را اصلاح کنیم. این مقاله به مغالطات رایج درباره پایپلاینینگ و کارایی میپردازد، سپس مسیر کامل از datapath های ساده تا اجرای سوپراسکالر که در سراسر این فصل پوشش داده شد را به هم پیوند میدهد.
هیچ فناوری حافظه واحدی همزمان سریع، بزرگ، و ارزان نیست. این مقاله مفهوم سلسلهمراتب حافظه که چند فناوری حافظه مختلف را ترکیب میکند تا به سرعت سریعترین آنها با هزینه ارزانترین نزدیک شود را معرفی میکند، سپس فناوریهای اصلی که هر سطح را میسازند مرور میکند.
یک کش فقط به این دلیل کار میکند که برنامهها تمایل دارند داده یکسان یا نزدیک به هم را بهطور تکراری دسترسی کنند نه بهصورت تصادفی. این مقاله اصل محلیت که کش را مؤثر میکند را توضیح میدهد، یک کش مستقیمنگاشتشده چگونه داده را با استفاده از یک آدرس مکانیابی میکند، و در یک hit کش در مقابل یک miss کش چه اتفاقی میافتد.
همه miss های کش یکسان نیستند، و درک علل آنها اولین گام برای بهبود کارایی است. این مقاله توضیح میدهد چگونه تأثیر واقعی کارایی کش را با استفاده از نرخ miss و جریمه miss محاسبه کنیم، سه علت رایج miss های کش را دستهبندی میکند، و استراتژیهای عملی برای کاهش هرکدام را توضیح میدهد.
سختافزار حافظه بهطور کامل قابلاعتماد نیست؛ نویز الکتریکی و نقصهای فیزیکی میتوانند بیسروصدا بیتهای ذخیرهشده را برگردانند. این مقاله توضیح میدهد کدهای تشخیص و تصحیح خطا چگونه به سختافزار اجازه میدهند این مقادیر خرابشده را متوجه شود، و در بسیاری موارد بهطور خودکار پیش از اینکه باعث رفتار نادرست برنامه شوند تصحیح کند.