
توضیحی شفاف و ساختاریافته از نحوه تعامل سختافزار و نرمافزار در سطح بنیادی. این محتوا طراحی پردازنده، اجرای دستورات، پایپلاین، سلسلهمراتب حافظه، موازیسازی و اصول اصلی تعیینکننده عملکرد سیستم را پوشش میدهد. با استفاده از یک معماری دستورالعمل مدرن و سادهشده، پایهای قوی برای درک واقعی نحوه کار کامپیوترها و سرورها ایجاد میکند.
ضرب بسیار سختافزارطلبتر از جمع است، چون اساساً شامل جمع تکراری و شیفت است. این مقاله الگوریتم مفهومی که سختافزار برای ضرب اعداد باینری استفاده میکند را مرور میکند، توضیح میدهد چرا نتیجه به دو برابر عرض بیتی ورودیها نیاز دارد، و نحوه تفاوت ضرب علامتدار با حالت بدونعلامت را پوشش میدهد.
تقسیم سختافزارطلبترین عملیات محاسباتی پایه است، که شامل تفریق و مقایسه تکراری است نه یک مدار تکمرحلهای. این مقاله الگوریتم مفهومی تقسیم طولانی که سختافزار دنبال میکند را توضیح میدهد، خارجقسمت و باقیمانده چگونه با هم تولید میشوند را شرح میدهد، و موارد خاصی مانند تقسیم بر صفر که سختافزار باید صراحتاً مدیریت کند را پوشش میدهد.
اعداد صحیح نمیتوانند مقادیر اعشاری یا بازه عظیم بزرگیهایی که محاسبات علمی و مالی نیاز دارند را نمایش دهند. این مقاله توضیح میدهد اعداد ممیز شناور چگونه یک علامت، توان و کسر را در تعداد ثابتی بیت مطابق با استاندارد IEEE 754 کدگذاری میکنند، و مبادلات دقت و مسائل گرد کردن که با این روش نمایش اعداد حقیقی همراه است را پوشش میدهد.
پردازندههای امروزی اغلب نیاز دارند یک عملیات ساده یکسان را بهطور همزمان روی دادههای کوچک زیادی اعمال کنند، مانند تنظیم روشنایی میلیونها پیکسل یک تصویر. این مقاله موازیسازی زیرکلمهای، نحوه تقسیم یک رجیستر پهن به چند لِین کوچکتر که در یک دستور واحد پردازش میشوند، و چگونگی کاربرد این ایده در سختافزار تجاری از طریق افزونههای واقعی مانند SIMD و AVX را توضیح میدهد.
ضرب ماتریس یکی از رایجترین و حساسترین عملیات از نظر کارایی در محاسبات علمی و یادگیری ماشین است. این مقاله نشان میدهد موازیسازی زیرکلمهای چگونه این عملیات را در عمل تسریع میکند، سپس فصل محاسبات را با پرداختن به تصورات غلط رایج درباره محاسبات کامپیوتری و جمعبندی درسهای اصلی از جمع تا ممیز شناور به پایان میرساند.
پیش از آنکه یک پردازنده بتواند ساخته شود، طراحان آن باید روی مجموعهای مشترک از قوانین برای نحوه رفتار مدارهای دیجیتال در طول زمان توافق کنند. این مقاله توضیح میدهد ساخت یک پردازنده واقعاً چه چیزی را شامل میشود، دو دسته گسترده پیادهسازی که در این فصل پوشش داده میشود، و قراردادهای بنیادین طراحی منطقی که رفتار مدار را قابلپیشبینی میکنند.
یک datapath مدار فیزیکی است که داده را در طول اجرای یک دستور از میان پردازنده حرکت میدهد. این مقاله بلوکهای سازنده اساسی سختافزاری مورد نیاز برای fetch، decode، و اجرای دستورات را تجزیه میکند، و نشان میدهد آنها چگونه بههم سیمکشی میشوند تا یک datapath پردازنده کارآمد، هرچند سادهشده، تشکیل دهند.
یک datapath بهتنهایی بدون سیگنالهای کنترلی که به آن بگویند برای هر دستور چه کاری انجام دهد، هیچ کاری نمیکند. این مقاله توضیح میدهد منطق کنترلی چگونه فیلدهای opcode و function یک دستور را میخواند تا سیگنالهای دقیق مورد نیاز برای مسیریابی درست داده را تولید کند، و مرور میکند یک پیادهسازی کامل تکسیکلی چگونه انواع مختلف دستورات را اجرا میکند.
یک پردازنده تکسیکلی مقدار عظیمی از زمان بیکاری سختافزار را هدر میدهد چون هر دستور باید در طول کندترین دستور ممکن جا شود. این مقاله پایپلاینینگ را بهعنوان یک راهحل معرفی میکند، تشبیه کلاسیک خط تولید را توضیح میدهد، پایپلاین استاندارد پنجمرحلهای را تجزیه میکند، و توضیح میدهد چرا پایپلاینینگ توان عملیاتی دستورات را افزایش میدهد بدون اینکه هیچ دستور منفردی را سریعتر کند.
همپوشانی اجرای دستورات به بیش از اجرای سریعتر همان سختافزار تکسیکلی نیاز دارد؛ نیازمند جداسازی فیزیکی هر مرحله پایپلاین با عناصر ذخیرهسازی و تکرار منطق کنترلی در سراسر مراحل است. این مقاله توضیح میدهد رجیسترهای پایپلاین چگونه وضعیت دستور را بین مراحل حفظ میکنند و سیگنالهای کنترلی چگونه همراه با داده در سراسر پایپلاین حرکت میکنند.
همپوشانی اجرای دستورات یک مشکل جدی ایجاد میکند وقتی یک دستور به نتیجهای نیاز دارد که دستور قبلی هنوز محاسبه آن را تمام نکرده است. این مقاله توضیح میدهد خطرهای داده چه هستند، forwarding چگونه بیشتر آنها را بدون از دست دادن هیچ کارایی حل میکند، و چرا برخی موقعیتها همچنان نیاز به توقف پایپلاین دارند.
شاخهها یک مسئله منحصربهفرد برای پایپلاینینگ ایجاد میکنند: پردازنده باید دستور بعدی را پیش از آنکه حتی بداند آیا یک شاخه گرفته خواهد شد یا نه، واکشی کند. این مقاله توضیح میدهد خطرهای کنترلی چه هستند، پیشبینی شاخه و حل زودهنگام چگونه تلاش میکنند هزینه آنها را به حداقل برسانند، و وقتی یک پیشبینی نادرست از آب درمیآید چه اتفاقی میافتد.