کمک پردازنده
کمک پردازنده ، پردازشگری کامپیوتری است که به تکمیل وظایف پردازندهٔ اولیه (CPU) کمک می‌کند. عملیاتی که توسط کمک پردازنده، انجام می‌شوند، ممکن است از نوع: محاسبات شناور، گرافیک، پردازش سیگنال، پردازش رشته‌های متنی، رمزنگاری یا رابط‌کاربری I / O با دستگاه‌های جانبی باشند. کمک پردازنده‌ها می‌توانند باعث تسریع عملکرد سیستم در وظایفی شوند که بار پردازشی بالایی را بر روی پردازنده اصلی، وارد می‌کنند. کمک پردازنده امکان سفارشی‌سازی کامپیوترها را فراهم می‌کند، ازاین‌رو دیگر لازم نیست تا مشتریان برای عملکرد بالاتر، هزینهٔ اضافی پرداخت کنند.
کمک پردازنده‌ها دارای درجهٔ متفاوتی از خودمختاری هستند. اساس کار برخی از آنها (مانند FPU‌ها) بر روی کنترل مستقیم بوسیلهٔ دستورالعمل‌های کمک پردازنده است، که این دستورالعمل‌ها درون جریان دستورالعمل CPU تعبیه شده‌اند. برخی دیگر نیز شامل پردازنده‌های مستقلی هستند که قادر هستند تا به‌صورت همگام، کار کنند، آنها هنوز برای همه‌منظوره، بهینه نشده‌اند، یا قادر به انجام مجموعه دستورالعملهای محدود در وظایف تسریع کننده نیستند. این کمک پردازنده‌ها از دسترسی مستقیم به حافظه (DMA)در کنار پردازندهٔ میزبان استفاده می‌کنند که پردازنده میزبان بر روی لیستی از دستورها، ایجاد شده‌است. موتور احساس پلی استیشن ۲ (Emotion PlayStation 2)حاوی واحد بردار SIMD شبه-DSP است که قادر به انجام هردو حالت عملیات است
کامپیوتر بزرگ رایانه (Main Frame) برای استفادهٔ بهتر از زمان پردازنده رایانه اصلی، وظایف ورودی/خروجی را به سیستم‌های جداگانه‌ای تحت عنوان واگذار کرد. بزرگ رایانه به هیچ‌گونه پردازش I/O نیازی ندارد، درعوض از مجموعه‌ای از پارامترها برای هریک از عملیات ورودی یا خروجی استفاده می‌کند و سپس به کانال پردازنده، سیگنالی را ارسال می‌کند تا کل عملیات را به آن کانال، واگذار کند. با اختصاص پردازنده‌های فرعی برای مدیریت فرمت‌دهی و پردازش عملیات I/O زمان‌بر، عملکرد سیستم، بهبود یافت.
کمک پردازنده‌ها ابتدا در دههٔ ۱۹۷۰، برای عملیات محاسبات ممیز شناور در رایانه‌های رومیزی استفاده شدند و در دههٔ ۱۹۸۰ و اوایل ۱۹۹۰ رواج بیشتری یافتند. پردازنده‌های ۸-بیت و ۱۶ بیت قدیمی از نرم‌افزار برای انجام عملیات محاسبات ممیز شناور، بهره می‌گرفتند. وقتی استفاده از کمک پردازنده‌ها در این زمینه، رایج شد، سرعت انجام محاسبات ممیز شناور، بیشتر شد. کمک پردازنده‌های محاسباتی، گزینهٔ محبوبی برای کاربرانی شدند که از نرم‌افزارهای طراحی رایانهای (CAD) و محاسبات مهندسی و علمی، استفاده می‌کردند. برخی از واحدهای ممیز شناور مانند AMD ۹۵۱۱، Intel ۸۲۳۱/۸۲۳۲ و Weitek FUP بعنوان دستگاه‌های جانبی، مطرح شدند، درحالیکه سایرین مانند: Intel 8087، موتورلا (بزرگ رایانه) (Motorola ۶۸۸۸۱)۶۸۸۸۱ و National ۳۲۰۸۱ دارای یکپارچگی بیشتری با CPU بودند.
دیگر نوع کمک پردازنده‌ها، کمک پردازندهٔ نمایش ویدئو بود که در کامپیوترهای خانگی: در خانواده ۸ بیتی Atari, Texas Instrument TI-99 / 4A و MSX تحت عنوان «کنترل نمایشگر ویدیو» استفاده شد. . چیپست سفارشیCommodore Amiga جزو چنین کمک پردازنده‌هایی بود که به کوپر() مشهور شد و همچنین بلیتتر(Blitter)که برای تسریع دستکاری‌های بیت‌مپ(Bitmap) در حافظه، استفاده شد.
با توسعهٔ ریزپردازنده‌ها، هزینهٔ یکپارچه‌سازی وظایف محاسبات ممیز شناور با پردازنده، کاهش یافت. سرعت بالای پردازنده‌ها موجب گشت تا پیاده‌سازی پردازنده‌های بسیار یکپارچه، سخت‌تر شود. امروزه، استفاده از کمک پردازنده‌های جداگانه برای انجام محاسبات در رایانه‌های رومیزی، دیگر رایج نیست. تقاضا برای کمک پردازنده گرافیکی اختصاصی، بالا رفته‌است، هرچند، دلیل این رشد تقاضا تا حدی با افزایش تقاضا برای گرافیک‌های سه‌بعدی واقع‌گرا در بازی‌های رایانه‌ای، مرتبط است.
رایانه‌های شخصی اصلی IBM شامل سوکتی (موسوم به FPU) برای کمک پردازندهٔ ممیز شناور Intel 8087 است، که گزینهٔ محبوبی برای افرادی است که از برنامه‌های طراحی کامپیوتری یا محاسبات حجیم در رایانه‌های شخصی، استفاده می‌کنند. در این معماری، کمک پردازنده به تسریع محاسب ممیز شناور تا پنجاه‌برابر، کمک می‌کند. کاربرانی که از رایانه‌های شخصی تنها برای پردازش کلمات، استفاده می‌کنند، هزینهٔ زیادی را در کمک پردازنده‌ها صرفه‌جویی می‌توانند بکنند، چرا که کمک پردازنده‌ها کمکی به افزایش عملیات دستکاری متن، نمی‌کنند.
۸۰۸۷ با /8088 دارای یکپارچگی بالایی درکدهای عملیاتی ماشین ممیز شناور هستند که در جریان دستورالعمل‌های ۸۰۸۸ درج شده‌اند. هر پردازندهٔ ۸۰۸۸ بدون ۸۰۸۷ قادر به تفسیر این دستورالعمل‌ها نیست و به نسخهٔ جداگانه‌ای از برنامه‌های FPU و سیستم‌های غیر FPU نیاز دارد یا حداقل به واحدی برای تست در زمان اجرا دارد تا FPU را تشخیص داده و توابع کتابخانه‌ای محاسباتی مناسبی را انتخاب کند
دیگر کمک پردازنده برای پردازندهٔ مرکزی ۸۰۸۶/۸۰۸۸ کمک پردازندهٔ ورودی/خروجی است. این کمک پردازنده از تکنیک برنامه‌نویسی یکسانی با ۸۰۸۷ برای عملیات ورودی/خروجی استفاده می‌کند، برای مثال در انتقال داده از حافظه به دستگاه جانبی. به اینصورت باعث کاهش بار CPU می‌شود. اما IBM از طراحی IBM رایانه‌های شخصی استفاده نمی‌کند و اینتل، توسعهٔ این نوع کمک پردازنده را متوقف کرده‌است.
ریزپردازنده Intel 80386از کمک پردازندهٔ محاسباتی اختیاری (۸۰۳۸۷) برای انجام عملیات ممیز شناور به‌صورت مستقیم در سخت‌افزار استفاده می‌کند. پردازندهٔ Intel 80486DX دارای سخت‌افزار ممیز شناور بر روی چیپ خود است. 80486SX پردازشگر نسبتاً ارزان اینتل است که هیچ نوع سخت‌افزار ممیز شناوری ندارد و همچنین کمک پردازندهٔ 80487SX در کنار آن فروخته می‌شود و این کمک پردازنده با استفاده از مجموعه‌ای از اتصالات پین، تکمیل‌کنندهٔ پردازندهٔ اصلی 80486DX است، همچنین در حین نصب کمک‌پردازنده، پردازندهٔ اصلی، غیرفعال می‌شود.
پردازنده‌های اینتل پس از ۸۰۴۸۶ سخت‌افزار ممیز شناور را با چیپ پردازندهٔ اصلی، یکپارچه کردند. پیشرفتها در یکپارچه‌سازی، هزینهٔ فروش پردازشگر ممیز شناور را بعنوان عنصری اختیاری، حذف کرد. تطابق با تکنیک‌های برد-مدار با سرعت موردنیاز 75MHz در پردازنده، سخت بود، مخصوصاً اینکه بایستی به تأمین مواردی چون: تأخیر زمانی، مصرف برق و فرکانس رادیویی استاندارد موردنیاز در سرعت کلاک در محدودهٔ گیگاهرتز نیز توجه می‌شد. این پردازنده‌های ممیز شناور روی-چیپ هنوز بعنوان کمک پردازنده، مورد استفاده هستند، چرا که قادر به عملکرد موازی با CPU اصلی هستند
Weitek دیگر نوع رایج برای کمک پردازنده‌های ممیز شناور در دوران استفاده از کامپیوترهای رومیزی ۸-بیت و ۱۶-بیتی بود. این کمک پردازنده‌ها دارای مجموعه دستورالعمل‌های متفاوتی نسبت به کمک پردازنده‌های اینتل بودند و سوکت متفاوتی را استفاده می‌کردند که در تمام بردهای اصلی پشتیبانی نمی‌شد. پردازنده‌های Weitek مانند خانوادهٔ intel x87 توابع محاسباتی غیرجبری (برای مثال توابع مثلثاتی) را پشتیبانی نمی‌کردند و به کتابخانه‌های نرم‌افزاری مخصوصی بمنظور پشتیبانی از این توابع، نیاز داشتند.
خانوادهٔ موتورولا ۶۸۰۰۰ دارای کمک پردازنده‌های بودند که باعث تسریع سرعت ممیز شناور مشابهی با پردازندهای اینتل می‌شدند. کامپیوترهایی که از خانوادهٔ ۶۸۰۰۰ استفاده می‌کردند اما با سخت‌افزار پردازندهٔ ممیز شناور، مجهز نبودند، می‌توانستند از دستورالعمل‌های ممیز شناور در نرم‌افزار خود تقلید کرده و استفاده کنند. این دستورالعمل‌ها دارای سرعت پایینی بودند و نسخهٔ باینری از برنامه را برای هر دو مورد، توزیع می‌کردند. کمک پردازندهٔ مدیریت حافظهٔ ۶۸۴۵۱ برای کار با پردازندهٔ ۶۸۰۲۰ طراحی شده‌بود.
از سال ۲۰۰۱، واحدهای پردازش گرافیک () به شکل کارت‌های گرافیک، رایج شدند. مدل‌های معینی از کارت‌های صوتی با پردازنده‌های اختصاصی، متناسب شدند تا ترکیب چند کانالی دیجیتال و اثرات بیدرنگ DSP را تا اوایل ۱۹۹۰ الی ۱۹۹۴ ارائه کردند (گراویس اولتراسوند ( Ultrasound) و ساند بلستر () دو نمونه از اینها هستند). درحالیکه ساند بلستر آئودیگی ()
و ساند بلستر X-Fi
() دو نمونهٔ اخیر هستند.
در سال ۲۰۰۶، AGEIA کارت افزودنی را برای کامپیوترها، معرفی کرد که PhysX PPU نامیده می‌شد. PhsyX برای انجام محاسبات فیزیکی پیچیده، طراحی شده‌بود و در این کارت، CPU و GPU نیازی نبود تا درگیر محاسبات زمان‌بر شوند. این کارت برای بازی‌های ویدئویی، طراحی شده‌بود و هرچند محاسباتی نیز از تئوری، قابلیت انجام دیگر کارهای محاسباتی را نیز داشت. در سال ۲۰۰۸، انودیایا (Nvidia) کمپانی را خرید و خط تولید کارت PhysX را از رده خارج کرد و وظیفه‌مندی نرم‌افزاری را به GPU افزود تا قادر به رندر PhysX بر روی هسته به‌صورت نرمال باشد و در پردازش گرافیک، مورد استفاده قرار بگیرد و از نرم‌افزار مونور انویدیا PhysX Nvidia) PhysX) استفاده می‌کرد.
در سال ۲۰۰۶، سیستم‌های بیگ فوت (BigFoot) کارت افزودنی PCI را معرفی کردند که KillerNIC نام گرفت و کرنل لینوکس مختص خود را بر روی به‌صورت مقیاس آزاد و بر روی 400 MHz اجرا می‌کرد و چیپ مقیاس آزاد بر روی واحد پردازش شبکه یا NPU نام داشت.
موتور اسپروس (SpursEngine) کارت افزودنی مبتنی بر رسانه است که دارای کمک پردازنده‌ای بر روی ریزمعماری سلولی است. SPU‌ها دارای کمک پردازنده‌های برداری خود هستند.
در سال ۲۰۰۸، گروه با نامKhronos یک OpenCLخود را با هدف پشتیبانی از CPUهای کاربرد عمومی، ATI/AMD و GPUهای انویدیا (و دیگر تسریع‌کننده‌ها) ارائه کرد که دارای زبان مشترک منفردی برای هسته‌های محاسباتی بودند.
در سال ۲۰۱۰، برخی دستگاه‌های محاسبات سیار، هاب حسگر ی را بعنوان کمک پردازنده، پیاده‌سازی کردند. نمونه‌هایی از کمک پردازندها برای مدیریت یکپارچه‌سازی حسگر در دستگاه‌های سیار از جمله کمک پردازنده‌های حرکتی اَپل (Apple M7) و M8، هسته حسگر Qualcomm Snapdragon Sensor Coreو Qualcomm Hexagon و واحد پردازش هولوگرافی برای هولولنزهای میکروسافت (Microsoft HoloLens) استفاده شد.
در سال ۲۰۱۲، اینتلکمک پردازندهٔ Intel Xeon Phi را معرفی کرد.
تا سال ۲۰۱۶، شرکت‌های مختلفی، کمک پردازنده‌هایی را توسعه دادند که هدف آنها تسریع شبکه‌های عصبی مصنوعی برای وظایف بینایی و دیگر وظایف شناختی بود (مثلاً واحدهای پردازش بینایی، ترونورتس () و زئروتس()) و تا سال ۲۰۱۸، تراشه‌های دارای هوش مصنوعی برای گوشی‌های هوشمند مانند اَپل و چندین فروشندهٔ گوشی‌های اندروید، تولید شد.در طول زمان، CPU رشد کردند که وظیفه‌مندی اغلب کمک پردازنده‌ها را جذب کردند. درحال‌حاضر، FPUها، قسمت یکپارچه‌ای از خط‌لولهٔ اصلی پردازنده هستند، واحدهای باعث تسریع رسانه می‌شوند و نقش کارت‌های تسریع مختلف را به عهده می‌گیرند و حتی ها با CPU یکپارچه شده‌اند. بااین‌وجود، واحدهای اختصاصی هنوز دارای محبوبیت خود در بین ماشین‌های رومیزی هستند و به خاطر داشتن قدرت بیشتر، امکان دارد به روند تکاملی خود به‌صورت مستقل از پردازنده، ادامه دهند.