محاسبات موازی
-------------

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

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

**دستورات آبراهه داده‌ها**:

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

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

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

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

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

محتویات (پنهان)

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

مفهوم و انگیزه
--------------

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

هزینه‌ها و اشکالات
------------------

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

ملاحظه‌های طراحی
----------------

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

پیاده‌سازی
----------

**بافر، آبراهه به همزمان**

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

بافر، آبراهه آسنکرون
--------------------

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

آبراهه پرنشده
-------------

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

منابع
-----

* ویکی‌پدیای انگلیسی. /wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7:Pipeline\_(computing)

پیوندهای خارجی:
A real hardware implementation of a Pipeline protocol

| * ن
* ب
* و
فناوری‌های واحد پردازش مرکزی |
| --- |
| مدل‌های محاسبه | 
* ماشین تورینگ
	+ ماشین محاسبه تورینگ
	+ ماشین پست-تورینگ
	+ ماشین تورینگ کوانتومی
* Belt machine
* ماشین پشته‌ای
* ماشین حالات متناهی
	+ with datapath
	+ ماشین حالت یو.ام.ال
	+ ماشین صف
* Register machines
	+ Counter
	+ Pointer
	+ Random-access
	+ ماشین برنامه ذخیره‌شده با دسترسی تصادفی

 |
| معماری رایانه | 
* ریزمعماری
* معماری فون نویمان
* معماری هاروارد
	+ modified
* معماری جریان داده
* Transport-triggered
* Cellular
* اندیان
* ذخیره‌سازی داده رایانه
	+ حافظه دسترسی غیریکپارچه
	+ HUMA
	+ Load/store
	+ معماری حافظه ثبات
* Cache hierarchy
* سلسله‌مراتب حافظه
	+ حافظه مجازی
	+ ذخیره‌سازی داده رایانه
* Heterogeneous
* Fabric
* چندپردازشی
* رایانش شناختی
* نورومورفیک

 |
| مجموعه دستورالعملs | 

|  |  |
| --- | --- |
| Types | 
* رایانه با دستورهای پیچیده
* رایانه کم‌دستور
* Application-specific
* EDGE
	+ TRIPS
* کلمه دستورالعمل بسیار طولانی
	+ رایانش موازی صریح دستورالعمل‌ها
* MISC
* OISC
* NISC
* ZISC
* comparison
	+ حالت آدرس‌دهیs

 |

* اکس۸۶
* معماری آرم
* معماری میپس
* Power ISA
* اسپارک
* Itanium
* Unicore
* MicroBlaze
* RISC-V
* others
 |
| Execution | 

|  |  |
| --- | --- |
| خط لوله (رایانه) | 
* حباب (رایانه)
* Operand forwarding
* Classic RISC pipeline

 |
| مخاطره (معماری رایانه)s | 
* وابستگی داده
* مخاطره (معماری رایانه)
* مخاطره (معماری رایانه)
* False sharing

 |
| خروج از دستور در حال اجرا | 
* Tomasulo algorithm
	+ Reservation station
	+ Re-order buffer
* تغییر نام ثبات

 |
| Speculative | 
* پیش‌بینی‌کننده پرش
* Memory dependence prediction

 |

 |
| رایانش موازی | 

|  |  |
| --- | --- |
| Level | 
* موازی‌سازی بیتی
	+ Bit-serial
	+ کلمه (معماری رایانه)
* دستورالعمل
* خط لوله (رایانه)
	+ Scalar
	+ سوپراسکالر
* Task
	+ ریسه (رایانه)
	+ فرایند (رایانه)
* Data
	+ پردازنده برداری
* Memory
* رایانش توزیع‌شده

 |
| چندریسمانی | 
* چندرشته زمانی
* چندرشتگی همزمان
	+ فراریسمانی
* Speculative
* قبضه‌کردن (رایانش)
* چند وظیفه‌ای بدون قبضه‌ای

 |
| طبقه‌بندی فلین | 
* یک دستور یک داده
* یک دستور چند داده
	+ SWAR
* SIMT
* چند دستور یک داده
* چند دستور چند داده
	+ یک برنامه چند داده

 |

 |
| Processorperformance | 
* Transistor count
* Instructions per cycle (IPC)
	+ Cycles per instruction (CPI)
* Instructions per second (IPS)
* فلاپس (FLOPS)
* تراکنش بر ثانیه (TPS)
* Synaptic updates per second (SUPS)
* Performance per watt (PPW)
* Cache performance metrics
* Computer performance by orders of magnitude

 |
| Types | 
* واحد پردازش مرکزی (CPU)
* واحد پردازش گرافیکی (GPU)
	+ محاسبات همه‌منظوره بر روی واحد پردازش گرافیکی
* پردازنده برداری
* Barrel
* پردازش جریان
* Coprocessor
* مدارهای مجتمع با کاربرد خاص
* مدار مجتمع دیجیتال برنامه‌پذیر
* CPLD
* Multi-chip module (MCM)
* System in package (SiP)

|  |  |
| --- | --- |
| By application | 
* ریزپردازنده
* ریزکنترل‌گر
* Mobile
* Notebook
* Ultra-low-voltage
* ASIP

 |
| Systemson chip | 
* سامانه روی یک تراشه (SoC)
* Multiprocessor (MPSoC)
* Programmable (PSoC)
* شبکه درون یک تراشه (NoC)

 |
| شتاب‌دهنده سخت‌افزاری | 
* AI accelerator
* Vision processing unit (VPU)
* Physics processing unit (PPU)
* پردازشگر سیگنال دیجیتال (DSP)
* واحد پردازشی تنسور (TPU)
* Secure cryptoprocessor
* پردازنده‌های شبکه‌ای
* Baseband processor

 |

 |
| کلمه (معماری رایانه) | 
* معماری ۱-بیتی
* بیت برش
* ۴-بیت
* ۸ بیتی
* ۱۶ بیتی
* ۳۲-بیت
* 48-bit
* 64-bit
* ۱۲۸-بیت
* 256-bit
* 512-bit
* کلمه (معماری رایانه)
	+ کلمه (معماری رایانه)

 |
| Core count | 
* Single-core
* پردازنده چندهسته‌ای
* Manycore
* Heterogeneous architecture

 |
| اجزاء | 
* واحد پردازش مرکزی
* حافظه نهان (رایانش)
	+ حافظه نهان سی‌پی‌یو
	+ الگوریتم حافظه پنهان
	+ انسجام حافظه نهان
* گذرگاه (رایانه)
* سرعت ریزپردازنده
* سیگنال ساعت
* خروج به ترتیب ورود (رایانه و الکترونیک)

|  |  |
| --- | --- |
| Functional units | 
* واحد محاسبه و منطق (ALU)
* Address generation unit (AGU)
* واحد ممیز شناور (FPU)
* واحد مدیریت حافظه (MMU)
	+ Load–store unit
	+ تی‌ال‌بی (TLB)
* کنترلگر حافظه (IMC)

 |
| دروازه منطقی | 
* مدار ترکیبی
* مدارهای ترتیبی
* Glue
* دروازه منطقی
	+ دروازه‌های منطقی کوانتومی
	+ دروازه آرایه

 |
| ثبت سخت‌افزاریs | 
* ثبات
* ثبات وضعیت
* ثبات پشته‌ای
* Register file
* Memory buffer
* شمارنده برنامه

 |
| Control unit | 
* Instruction unit
* حافظه میانگیر
* Write buffer
* ریزبرنامه‌سازی تصویر رام
* شمارنده

 |
| دیتاپد | 
* تسهیم‌کننده
* تسهیم‌کننده
* جمع‌کننده
* ضرب‌کننده دودویی
	+ پردازنده چندبرابر
* رمزگشا
	+ Address decoder
	+ Sum addressed decoder
* شیفت دهنده بشکه‌ای

 |
| مدار الکترونیکی | 
* مدار مجتمع
	+ 3D
	+ Mixed-signal
	+ Power management
* مدار بولی
* الکترونیک دیجیتال
* الکترونیک آنالوگ
* Quantum
* کلید (مدار)

 |

 |
| مدیریت نیرو | 
* PMU
* APM
* رابط قدرت و تنظیمات پیشرفته
* درجه‌بندی پویای بسامد
* Dynamic voltage scaling
* Clock gating
* Performance per watt (PPW)
* Race to sleep

 |
| مرتبط | 
* History of general-purpose CPUs
* Microprocessor chronology
* طراحی پردازنده
* الکترونیک دیجیتال
* ماژول امنیتی سخت‌افزاری
* Semiconductor device fabrication
* Tick–tock model

 |