خط لوله (رایانش)

بندانگشتی|بیان مفهومی خط رایانش

## محاسبات موازی
**پردازش**، مجموعه‌ای از عناصر مرتبط با هم است به طوری که خروجی از یک عنصر ورودی به عنصر بعدی است. عناصر آبراهه اغلب به صورت موازی یا در مد زمان قطعه قطعه اجرا می‌شوند که در آن صورت مقداری از ذخیره‌سازی بافر است که اغلب در بین عناصر قرار خواهد گرفت. نام دیگر و روی کار این ویژگی، **آبراهه داده‌ها** است.

## محاسبات مربوط به آبراهه داده‌ها عبارتند از
**دستورات آبراهه داده‌ها**:

از قبیل آبراهه کلاسیک RISC که در پردازنده‌ها استفاده می‌شوند اجازهٔ انجام هم‌زمان دستورهای متعدد با همان مدار را دارند.
مدارها معمولاً به مراحلی تقسیم می‌شوند از جمله دستورهای رمزگشایی، محاسباتی و مرحله واکشی که هر مرحله از پردازش یک دستور العمل در یک زبان است.

**کارت آبراهه داده‌ها**:

در بیشتر کارت‌های گرافیکی پیدا می‌شود که شامل واحدهای محاسباتی مختلف با پردازنده‌های کامل برای اجرای مراحل مختلف عملیات است ازجمله (طرح چشم‌انداز، رنگ و نور محاسبات، پردازش و…)

**نرم‌افزار آبراهه داده‌ها**:

که دستورهای آن به طوری نوشته شدند به طوری که خروجی یک عملیات به‌طور خودکار به عنوان ورودی عملیات بعدی استفاده می‌شود. در یونیکس دستور آبراهه مثال کلاسیک از این مفهوم است؛ اگر چه دیگر سیستم عامل‌ها هم به خوبی آبراهه را پشتیبانی می‌کنند.

محتویات (پنهان)
* مفهوم و انگیزه
* هزینه‌ها و اشکالات
* ملاحظات طراحی
* پیاده‌سازی
* بافر، آبراهه همزمان وسنکرون
* بافر، آبراهه آسنکرون
* آبراهه پرنشده

## مفهوم و انگیزه
پایپلاین یک مفهوم طبیعی در زندگی است. مانند یک خط مونتاژ. مونتاژ خودرو رادر در نظر بگیرید فرض کنید که مراحل خاصی در خط مونتاژ برای نصب موتور، نصب هود، و نصب چرخ (در آن دستور، با گام‌های خودسرانه بینابینی) وجود دارد. یک ماشین در خط مونتاژ می‌تواند تنها یکی از سه مرحله انجام شده در یک باررا داشته باشد. بعد که موتورماشین نصب شد، آن به خاطر داشتن نصب هود حرکت می‌کند، نصب موتور برای امکانات موجود برای ماشین بعدی ترک می‌شود. اولین ماشین روی چرخ نصب شده حرکت کرد، دومین ماشین روی هود نصب شده وسومین ماشین شروع به نصب موتورش می‌کند. اگر نصب موتور ۲۰ دقیقه نصب هود ۵ دقیقه ونصب چرخ ۱۰ دقیقه طول بکشد در پایان هر سه اتومبیل، فقط یکی از ماشین هامی توانند در ۱۰۵ دقیقه مونتاژ شود. از طرف دیگر زمان استفاده از خط مونتاژ برای کامل شدن هرسه ۷۵ دقیقه است در این مرحله ماشین‌های اضافی به خط مونتاژ بعد از۲۰ دقیقه خواهند آمد.

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

## ملاحظه‌های طراحی
یکی از جنبه‌های کلیدی طراحی خط لوله برقراری تعادل در مراحل موازی سازی است. به عنوان مثال با استفاده از خط مونتاژ، ما می‌توانیم زمان بیشتری را ذخیره کنیم اگرچه دو موتور و چرخها تنها پانزده دقیقه داشته باشند. اگرچه تأخیر سیستم هنوز۳۵دقیقه‌است اما خروجی ماشین جدیدما می‌تواند هر۱۵دقیقه باشد.
یکی دیگر ملاحظه‌های طراحی، ارائه بافر کافی بین مراحل خط لوله‌است—به ویژه هنگامی که پردازش زمان نامنظم است، یا زمانی که داده‌های موردی ممکن است ایجاد شده یا در امتداد خط لوله تخریب شوند.

## پیاده‌سازی
**بافر، آبراهه به همزمان**

ریزپردازنده‌های معمولی مدارهای همزمانی هستند که از مدارهای همزمان بافر، خط لوله همزمان استفاده می‌کنند. در این آبراهه، «ثبت آبراهه» در میان مراحل آبراهه قرار گرفته‌است و کلاک‌ها سنکرون (همزمان) هستند. زمان بین هر پالس ساعت بیشتر از طولانی‌ترین تأخیر بین مراحل آبراهه است، بنابراین زمانی که رجیسترها کلاک می‌خورند داده‌ای که نوشته می‌شود  نتیجه نهایی از مرحله قبلی است.

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

## آبراهه پرنشده
آبراهه پرنشده، را خط لوله موج می‌نامند. رجیسترها در بین مراحل آبراهه ثبت نشدند. در عوض، تأخیر در آبراهه متوازن است به طوری که، برای هر مرحله، تفاوت بین اولین داده خروجی تثبیت شده و آخرین داده به حداقل رسیده‌است. به این ترتیب، جریان داده در «امواج» را از طریق آبراهه، و هر موج کوتاه (همزمان) را ممکن است نگه دارد.
میزان حداکثر داده‌ای که می‌تواند در یک موج آبراهه تغذیه شود از طریق حداکثراختلاف در تأخیر بین اولین قطعه داده‌ای که از آبراهه بیرون آمده و آخرین قطعه از داده‌ها تعیین می‌شود. برای هرگیرنده موج اگرداده زودتر ازاین استفاده شود ممکن است برای امواجی از داده با دیگر داده‌ها تداخل داشته باشد.

## منابع

* ویکی‌پدیای انگلیسی. 
پیوند به بیرون:
A real hardware implementation of a Pipeline protocol

رده:پردازش دستورها