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

محاسبات موازی
پردازش ، مجموعه‌ای از عناصر مرتبط با هم است به طوری که خروجی از یک عنصر ورودی به عنصر بعدی است. عناصر خط لوله اغلب به صورت موازی یا در مد زمان قطعه قطعه اجرا می‌شوند که در آن صورت مقداری از ذخیره‌سازی بافر است که اغلب در بین عناصر قرار خواهد گرفت.
محاسبات مربوط به خط لوله عبارتند از
دستورات خط لوله :
از قبیل خط لوله کلاسیکRISCکه در پردازنده‌ها استفاده می‌شوند اجازه انجام هم‌زمان دستورهای متعدد با همان مدار را دارند.
مدارها معمولا به مراحلی تقسیم می‌شوند از جمله دستورهای رمزگشایی، محاسباتی و مرحله واکشی که هر مرحله از پردازش یک دستور العمل در یک زبان است.
کارت خط لوله :
در بیشتر کارت‌های گرافیکی پیدا می‌شود که شامل واحدهای محاسباتی مختلف با پردازنده‌های کامل برای اجرای مراحل مختلف عملیات است ازجمله (طرح چشم‌انداز، رنگ و نور محاسبات، پردازش و…)
نرم‌افزار خط لوله :
که دستورهای آن به طوری نوشته شدند به طوری که خروجی یک عملیات به طور خودکار به عنوان ورودی عملیات بعدی استفاده می‌شود. دریونیکس دستور لوله مثال کلاسیک از این مفهوم است؛ اگر چه دیگر سیستم عامل‌ها هم به خوبی لوله را پشتیبانی می‌کنند.
محتویات (پنهان)
مفهوم و انگیزه
هزینه‌ها و اشکالات
ملاحظات طراحی
پیاده‌سازی
بافر، خط لوله همزمان وسنکرون
بافر، خطوط لوله آسنکرون
خطوط لوله بافرنشده
مفهوم و انگیزه
پایپلاین یک مفوم طبیعی در زندگی است. مانند یک خط مونتاژ. مونتاژ خودرو رادر در نظر بگیرید فرض کنید که مراحل خاصی در خط مونتاژ برای نصب موتور، نصب هود، و نصب چرخ (در آن دستور، با گام‌های خودسرانه بینابینی) وجود دارد. یک ماشین در خط مونتاژ می‌تواند تنها یکی از سه مرحله انجام شده در یک باررا داشته باشد. بعد که موتورماشین نصب شد، آن به خاطر داشتن نصب هود حرکت می‌کند، نصب موتور برای امکانات موجود برای ماشین بعدی ترک می‌شود. اولین ماشین روی چرخ نصب شده حرکت کرد، دومین ماشین روی هود نصب شده وسومین ماشین شروع به نصب موتورش می‌کند. اگر نصب موتور ۲۰ دقیقه نصب هود ۵ دقیقه ونصب چرخ ۱۰ دقیقه طول بکشد در پایان هر سه اتومبیل، فقط یکی از ماشین هامی توانند در ۱۰۵دقیقه مونتاژ شود. از طرف دیگر زمان استفاده از خط مونتاژ برای کامل شدن هرسه ۷۵دقیقه‌است در این مرحله ماشین‌های اضافی به خط مونتاژ بعد از۲۰دقیقه خواهند آمد.
هزینه‌ها واشکالات
یک خط مونتاژ به عنوان مثال نشان می‌دهد موازی سازی زمان لازم برای پردازش را نه تنها کاهش نمی‌دهد بلکه سرعت پردازش جریانی از داده را برای سیستم افزایش می‌دهد.
موازی سازی درسطح بالا منجر به افزایش نیاز به زمان نهفته برای یک سیگنال مبلغ از طریق لوله (عناصر مدار، واحد پردازش، حافظه کامپیوتر، و غیره) نسبت به یک اجرا دارد، چرا که مراحل آن نمی‌توانند از منابع مراحل قبلی دوباره استفاده کنند. علاوه بر این موازی سازی ممکن است زمان را برای پایان یک دستور افزایش دهد.
ملاحظه‌های طراحی
یکی از جنبه‌های کلیدی طراحی خط لوله برقراری تعادل در مراحل موازی سازی است. به عنوان مثال با استفاده از خط مونتاژ، ما می‌توانیم زمان بیشتری را ذخیره کنیم اگرچه دو موتور و چرخها تنها پانزده دقیقه داشته باشند. اگرچه تاخیر سیستم هنوز۳۵دقیقه‌است اما خروجی ماشین جدیدما می‌تواند هر۱۵دقیقه باشد.
یکی دیگر ملاحظه‌های طراحی، ارائه بافر کافی بین مراحل خط لوله‌است—به ویژه هنگامی که پردازش زمان نامنظم است، یا زمانی که داده‌های موردی ممکن است ایجاد شده یا در امتداد خط لوله تخریب شوند.
پیاده‌سازی
بافر، خط لوله همزمان
ریزپردازنده‌های معمولی مدارهای همزمانی هستند که از مدارهای همزمان بافر، خط لوله همزمان استفاده می‌کنند. در این خط لوله، «ثبت خط لوله» در میان مراحل خط لوله قرار گرفته‌است و کلاک‌ها سنکرون (همزمان) هستند. زمان بین هر پالس ساعت بیشتر از طولانی‌ترین تاخیر بین مراحل خط لوله‌است، بنابراین زمانی که رجیسترها کلاک می‌خورند داده‌ای که نوشته می‌شود نتیجه نهایی از مرحله قبلی است.
بافر، خطوط لوله آسنکرون
خطوط لوله آسنکرون در مدارهای آسنکرون استفاده می‌شوند، ورجیسترهای خط لوله آن‌ها غیر همزمان کلاک می‌خورد. در کل می‌توان این طور گفت که آن‌ها از درخواست/ قبول دریافت سیستم استفاده می‌کنند، که در هر مرحله می‌توان زمانی که آن به پایان رسید را تشخیص داد. زمانی که یک مرحله به پایان می‌رسد ومرحله بعدی یک سیگنال درخواست را می‌فرستد در این مرحله یک سیگنال قبول درخواست را به مرحله بعدی می‌فرستد وسیگنال درخواست به مرحله قبلی داده می‌شود زمانی که یک سیگنال قبول درخواست دریافت شدآن کلاک خروجی رجیستر است، بنابراین خواندن داده از مرحله قبلی است.
ریزپردازنده حرز نمونه‌ای از یک ریز پردازنده‌است که از بافر، خطوط لوله ناهمگام استفاده می‌کند.
خطوط لوله پرنشده
خطوط لوله پرنشده، را خط لوله موج می‌نامند. رجیسترها در بین مراحل خط لوله ثبت نشدند. در عوض، تاخیر در خط لوله متوازن است به طوری که، برای هر مرحله، تفاوت بین اولین داده خروجی تثبیت شده و آخرین داده به حداقل رسیده‌است. به این ترتیب، جریان داده در «امواج» را از طریق خط لوله، و هر موج کوتاه (همزمان) را ممکن است نگه دارد.
میزان حداکثر داده‌ای که می‌تواند در یک موج خط لوله تغذیه شود از طریق حداکثراختلاف در تاخیر بین اولین قطعه داده‌ای که از خط لوله بیرون آمده و آخرین قطعه از داده‌ها تعیین می‌شود. برای هرگیرنده موج اگرداده زودتر ازاین استفاده شود ممکن است برای امواجی از داده با دیگر داده‌ها تداخل داشته باشد.