سازماندهی و طراحی سرور

سازماندهی و طراحی سرور

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

هیولت پاکارد اینترپرایز (اچ‌پی)

Articles

سخت‌افزار چگونه اعداد را ضرب می‌کند: از منطق ساده تا مدارهای واقعی

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

/article/how-hardware-multiplies-numbers-from-simple-logic-to-real-circuits-fa

سخت‌افزار چگونه تقسیم انجام می‌دهد: خارج‌قسمت، باقیمانده و موارد خاص

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

/article/how-hardware-performs-division-quotients-remainders-and-edge-cases-fa

کامپیوترها چگونه اعداد اعشاری را نمایش می‌دهند: استاندارد ممیز شناور

اعداد صحیح نمی‌توانند مقادیر اعشاری یا بازه عظیم بزرگی‌هایی که محاسبات علمی و مالی نیاز دارند را نمایش دهند. این مقاله توضیح می‌دهد اعداد ممیز شناور چگونه یک علامت، توان و کسر را در تعداد ثابتی بیت مطابق با استاندارد IEEE 754 کدگذاری می‌کنند، و مبادلات دقت و مسائل گرد کردن که با این روش نمایش اعداد حقیقی همراه است را پوشش می‌دهد.

/article/how-computers-represent-fractional-numbers-the-floating-point-standard-fa

موازی‌سازی زیرکلمه‌ای: یک دستور چگونه چند مقدار را هم‌زمان پردازش می‌کند

پردازنده‌های امروزی اغلب نیاز دارند یک عملیات ساده یکسان را به‌طور هم‌زمان روی داده‌های کوچک زیادی اعمال کنند، مانند تنظیم روشنایی میلیون‌ها پیکسل یک تصویر. این مقاله موازی‌سازی زیرکلمه‌ای، نحوه تقسیم یک رجیستر پهن به چند لِین کوچک‌تر که در یک دستور واحد پردازش می‌شوند، و چگونگی کاربرد این ایده در سخت‌افزار تجاری از طریق افزونه‌های واقعی مانند SIMD و AVX را توضیح می‌دهد.

/article/subword-parallelism-how-one-instruction-processes-multiple-values-at-once-fa

تسریع ضرب ماتریس و درس‌های کلیدی فصل سوم

ضرب ماتریس یکی از رایج‌ترین و حساس‌ترین عملیات از نظر کارایی در محاسبات علمی و یادگیری ماشین است. این مقاله نشان می‌دهد موازی‌سازی زیرکلمه‌ای چگونه این عملیات را در عمل تسریع می‌کند، سپس فصل محاسبات را با پرداختن به تصورات غلط رایج درباره محاسبات کامپیوتری و جمع‌بندی درس‌های اصلی از جمع تا ممیز شناور به پایان می‌رساند.

/article/speeding-up-matrix-multiplication-and-chapter-threes-key-lessons-fa

مقدمه‌ای بر طراحی پردازنده و قوانین منطق دیجیتال

پیش از آنکه یک پردازنده بتواند ساخته شود، طراحان آن باید روی مجموعه‌ای مشترک از قوانین برای نحوه رفتار مدارهای دیجیتال در طول زمان توافق کنند. این مقاله توضیح می‌دهد ساخت یک پردازنده واقعاً چه چیزی را شامل می‌شود، دو دسته گسترده پیاده‌سازی که در این فصل پوشش داده می‌شود، و قراردادهای بنیادین طراحی منطقی که رفتار مدار را قابل‌پیش‌بینی می‌کنند.

/article/introduction-to-processor-design-and-the-rules-of-digital-logic-fa

ساخت یک Datapath: اتصال رجیسترها، حافظه، و ALU

یک datapath مدار فیزیکی است که داده را در طول اجرای یک دستور از میان پردازنده حرکت می‌دهد. این مقاله بلوک‌های سازنده اساسی سخت‌افزاری مورد نیاز برای fetch، decode، و اجرای دستورات را تجزیه می‌کند، و نشان می‌دهد آن‌ها چگونه به‌هم سیم‌کشی می‌شوند تا یک datapath پردازنده کارآمد، هرچند ساده‌شده، تشکیل دهند.

/article/building-a-datapath-connecting-registers-memory-and-the-alu-fa

طراحی منطق کنترلی برای یک پردازنده تک‌سیکلی

یک datapath به‌تنهایی بدون سیگنال‌های کنترلی که به آن بگویند برای هر دستور چه کاری انجام دهد، هیچ کاری نمی‌کند. این مقاله توضیح می‌دهد منطق کنترلی چگونه فیلدهای opcode و function یک دستور را می‌خواند تا سیگنال‌های دقیق مورد نیاز برای مسیریابی درست داده را تولید کند، و مرور می‌کند یک پیاده‌سازی کامل تک‌سیکلی چگونه انواع مختلف دستورات را اجرا می‌کند.

/article/designing-control-logic-for-a-single-cycle-processor-fa

مروری بر پایپ‌لاینینگ: هم‌پوشانی اجرای دستورات

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

/article/an-overview-of-pipelining-overlapping-instruction-execution-fa

تبدیل یک Datapath تک‌سیکلی به یک Datapath پایپ‌لاین‌شده

هم‌پوشانی اجرای دستورات به بیش از اجرای سریع‌تر همان سخت‌افزار تک‌سیکلی نیاز دارد؛ نیازمند جداسازی فیزیکی هر مرحله پایپ‌لاین با عناصر ذخیره‌سازی و تکرار منطق کنترلی در سراسر مراحل است. این مقاله توضیح می‌دهد رجیسترهای پایپ‌لاین چگونه وضعیت دستور را بین مراحل حفظ می‌کنند و سیگنال‌های کنترلی چگونه همراه با داده در سراسر پایپ‌لاین حرکت می‌کنند.

/article/turning-a-single-cycle-datapath-into-a-pipelined-one-fa

خطرهای داده در پایپ‌لاین: Forwarding در مقابل Stalling

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

/article/data-hazards-in-pipelines-forwarding-versus-stalling-fa

خطرهای کنترلی: مدیریت شاخه‌ها در یک پردازنده پایپ‌لاین‌شده

شاخه‌ها یک مسئله منحصربه‌فرد برای پایپ‌لاینینگ ایجاد می‌کنند: پردازنده باید دستور بعدی را پیش از آنکه حتی بداند آیا یک شاخه گرفته خواهد شد یا نه، واکشی کند. این مقاله توضیح می‌دهد خطرهای کنترلی چه هستند، پیش‌بینی شاخه و حل زودهنگام چگونه تلاش می‌کنند هزینه آن‌ها را به حداقل برسانند، و وقتی یک پیش‌بینی نادرست از آب درمی‌آید چه اتفاقی می‌افتد.

/article/control-hazards-handling-branches-in-a-pipelined-processor-fa