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

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

شتاب دهنده سخت افزاری برای عملکرد بهتر است و زمانی که عملکردها ثابت می‌شوند، بنابراین به روز رسانی‌ها در مورد راه حل‌های نرم‌افزاری مورد نیاز نیست. با ظهور دستگاه‌های منطقی قابل برنامه‌ریزی مانند FPGAها، محدودیت شتاب سخت افزاری به الگوریتم‌های کاملاً ثابت از سال ۲۰۱۰ کاهش یافته‌است، به این ترتیب شتاب سخت افزاری برای حوزه‌های مشکوک که نیاز به اصلاح الگوریتم‌ها و پردازش جریان کنترل را دارند، کاهش می‌یابد.

بررسی اجمالی
------------

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

### محاسبات ارزیابی از سخت افزار و نرم‌افزار

نرم‌افزار یا سخت افزار می‌تواند تابع‌های محاسبه‌کننده را محاسبه کنند. سخت افزارهای سفارشی عملکرد بالاتری را در هر وات برای همان توابعی که در نرم‌افزار مشخص شده ارائه می‌دهند.

زبان توصیف سخت‌افزار (HDLs) مانند Verilog و VHDL می‌تواند مدلی که به صورت نرم‌افزار یا سنتز طراحی به صورت netlist است را برنامه‌ریزی کند و به وسیلهٔ یک FPGA یا گیت‌های منطقی تشکیل شده از یک مدارهای مجتمع با کاربرد خاص توصیف کند.

### برنامه ذخیره شده کامپیوتر

اکثر محاسبات مبتنی بر نرم‌افزار در ماشین‌هایی که از معماری فون نویمان استفاده می‌کنند، به‌طور کلی به عنوان کامپیوترهای ذخیره شده شناخته می‌شوند. برنامه‌های کامپیوتری به عنوان داده‌ها ذخیره می‌شوند و توسط پردازنده‌ها اجرا می‌شوند، معمولاً یک یا چند هسته CPU. چنین پردازنده باید واکشی و رمزگشایی دستورالعمل و همچنین عملوند داده از حافظه به عنوان بخشی از چرخه دستورالعمل به اجرای دستورالعمل‌های تشکیل دهنده برنامه نرم‌افزار. تکیه بر یک حافظه رایج برای کد و داده‌ها، منجر به تنگنای فون نویمان می‌شود، محدودیت اساسی بر روی توانایی نرم‌افزار در پردازنده‌های معماری فون نویمان. حتی در معماری هاروارد اصلاح شده، که در آن دستورالعمل‌ها و داده‌ها را جداگانه انبارهای در سلسله مراتب حافظه است، وجود دارد سربار به آموزش رمزگشایی شناسنده‌های و تسهیم دسترس واحدهای اجرایی در ریزپردازنده یا میکروکنترلر، که منجر به استفاده از مدار پایین. تکنولوژی Hyper-Threading اینتل با استفاده از استفاده کمتر از واحدهای عملکردی پردازنده موجود و هماهنگی سطح آموزش در میان موضوعات سختافزاری، چندینپرداز همزمان را فراهم می‌کند.

### سخت افزار واحدهای اجرایی

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

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

### در حال ظهور سخت افزار معماری

سفارشی سازی RTLهای بزرگ از ساختارهای سخت افزاری، معماری‌های جدیدی مانند محاسبات حافظه درونی، معماری های مجهز به حمل و نقل (TTA) و شبکه‌های درون تراشه (NoC) را فراهم می‌کند تا از موقعیت مکانی افزایش یافته و در نتیجه کاهش محاسبات و ارتباطات زمان تأخیر بین ماژول و کاربردی واحدرا به همراه دارد.

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

روش مرسوم برای ساخت چندین هسته و چند هسته ای پردازش واحد از نقشه‌ها هسته ریزپردازنده IP در FPGA یک یا ASICاست. به‌طور مشابه، واحدهای عملیاتی ویژه می‌توانند به صورت موازی در پردازش سیگنال دیجیتالی بدون درج در هسته پردازشگر IP قرار بگیرند؛ بنابراین، شتاب دهنده سخت افزاری اغلب برای کارهای تکراری و ثابت که شامل شاخه‌های شرطی کمی هستند، به ویژه در مقادیر زیادی از داده‌ها مورد استفاده قرار می‌گیرد. این نحوه استفاده از GPUهای CUDA Nvidia است.

### معیارهای پیاده‌سازی

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

نمونه کارهای شتاب دهنده
-----------------------

### جمع دو آرایه در یک آرایه دیگر

### مجموع یک میلیون عدد صحیح

فرض کنید ما مایل به محاسبه مجموع {\displaystyle 2^{20}=1,048,576} اعداد صحیح هستیم. فرض کنید اعداد صحیح بزرگ با عنوان `bignum` در دسترس هستند که به اندازه کافی بزرگند، برای نگهداری مجموع این اعداد می‌توان با کمک نرم‌افزار (در C++)آن را محاسبه نمود:

```
constexpr int N = 20;
constexpr int two\_to\_the\_N = 1 <<N;

bignum array\_sum(const std::array<int, two\_to\_the\_N>& ints) {
 bignum result = 0;
 for (std::size\_t i = 0; i <two\_to\_the\_N; i++) {
 result += ints[i];
 }
 return result;
}

```
این الگوریتم در زمان خطیهای {\textstyle {\mathcal {O}}\left(n\right)} در نماد O بزرگ اجرا می‌شود. در سخت افزار این عملیات در تراشه به صورت موازی تنها در ۲۰ مرحله با استفاده از پیشوند مجموع الگوریتم محاسبه می‌شود. این الگوریتمدارای پیچیدگی زمانی لگاریتمی {\textstyle {\mathcal {O}}\left(\log {n}\right)}و {\textstyle {\mathcal {O}}\left(1\right)}است:

```
parameter int N = 20;
parameter int two\_to\_the\_N = 1 <<N;

function int array\_sum;
 input int array[two\_to\_the\_N];
 begin
 for (genvar i = 0; i <N; i++) begin
 for (genvar j = 0; j <two\_to\_the\_N; j++) begin
 if (j>= (1 <<i)) begin
 array[j] = array[j] + array[j - (1 <<i)];
 end
 end
 end
 return array[two\_to\_the\_N - 1];
 end
endfunction

```
 این مثال مزایای استفاده از منابع موازی بیشتر در سختافزارهای کاربردی خاص را در مقایسه با اکثر نرم‌افزارها و پارادایمهای رایج عمومی و معماری به کار می‌برد.

### پردازش جریان

شتاب دهنده سخت افزاری را می‌توان برای پردازش جریان استفاده کرد.

برنامه‌های کاربردی
------------------

نمونه‌هایی از شتاب سخت افزاری شامل بیت blit شتاب عملکرد در واحد پردازش گرافیکی (gpuها) با استفاده از memristors برای شتاب شبکه‌های عصبی و عبارت منظم شتاب سخت افزاری برای دادن کنترل در سرور صنعت در نظر گرفته شده برای جلوگیری از به‌طور منظم بیان محرومیت از خدمات (ReDoS) حملات. سخت افزاری است که انجام شتاب ممکن است بخشی از یک منظوره CPU یا واحد جداگانه است. در مورد دوم آن است که به عنوان یک **شتاب دهنده سخت‌افزار**و یا بیشتر به‌طور خاص به عنوان یک 3D شتاب دهندههای رمزنگاری شتاب دهنده،

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

پردازنده‌های مدرن چند هسته ای و اغلب ویژگی‌های موازی «یک دستور العملی با داده‌های متعدد» با واحدی به نام (SIMD) هستند. همچنان شتاب دهنده‌های سخت افزاری بازدهی دارند.. شتاب دهنده‌های سخت افزاری مناسب برای هر گونه محاسبات برای فشرده سازی الگوریتم‌ها هستند که اغلب در یک کار یا برنامه اجرا می‌شوند. بسته به چند قسمتی بودن، شتاب دهنده‌های سخت افزاری می‌تواند از یک واحد کارکردی زیادی به عملکرد بلوک (مثل motion estimation در MPEG-2) با هم متفاوت باشد.

واحدهای شتاب دهنده سخت افزاری توسط نرم‌افزار
--------------------------------------------

| کاربرد | شتاب دهنده سخت افزاری | لغو (سرنام) |
| --- | --- | --- |
| گرافیک کامپیوتری* وظایف عمومی
* کارت گرافیک انویدیا
* ردیابی اشعه
 | واحد پردازش گرافیکی* محاسبات عمومی بر روی GPU
* معماری CUDA
* ردیابی سخت افزار
 | GPU
* GPGPU
* CUDA
* RTX
 |
| پردازش سیگنال دیجیتال | پردازنده سیگنال دیجیتال | DSP |
| پردازش سیگنال آنالوگ | آرایه آنالوگ قابل برنامه‌ریزی فیلد* RF قابل برنامه‌ریزی میدان
 | FPAA
* FPRF
 |
| پردازش صدا | کارت صدا و میکسر کارت صدا | N / A |
| شبکه کامپیوتری* بر روی تراشه
* TCP
* ورودی /خروجی
 | پردازنده شبکه و کنترل‌کننده رابط شبکه* شبکه در تراشه
* موتور تخلیه TCP
* فناوری شتاب در I / O
 | NPU و NIC
* NoC
* TCPOE یا TOE
* I / OAT یا IOAT
 |
| رمزنگاری* رمزگذاری
* ISA
	+ SSL / TLS
* حمله
* تولید تعداد تصادفی
 | شتاب دهنده رمزنگاری و رمزنگاری پروتکل امن
* رمزگذاری مبتنی بر سخت افزار
	+ دستورالعمل AES مجموعه
	+ شتاب دهنده SSL
* حمله سخت افزاری سفارشی
* مولد عددی تصادفی سخت افزاری
 | N / A |
| هوش مصنوعی* بینایی ماشین / دید کامپیوتر
* شبکه‌های عصبی
* شبیه‌سازی مغز
 | شتاب دهنده AI
* واحد پردازش دید
* شبکه عصبی فیزیکی
* مهندسی نئومورفیک
 | N / A
* VPU
* PNN
* N / A
 |
| جبر چند خطی | واحد پردازش تنسور | TPU |
| شبیه‌سازی فیزیک | واحد پردازش فیزیک | PPU |
| عبارات منظم | مخلوط‌کننده عبارات منظم | N / A |
| فشرده سازی داده‌ها | شتاب دهنده فشرده سازی اطلاعات | N / A |
| در حافظه پردازش | شبکه در تراشه و آرایه سیستولیک | NoC; N / A |
| هر کار محاسباتی | سخت‌افزار رایانه* آرایه دروازه قابل برنامه‌ریزی فیلد
* مدارهای مجتمع کاربردی خاص
* دستگاه منطق قابل برنامه‌ریزی مجتمع
* سیستم بر روی تراشه
	+ چند پردازنده سیستم بر روی تراشه
	+ سیستم عامل بر روی تراشه برنامه‌ریزی شده
 | HW (گاهی اوقات)
* FPGA
* ASIC
* CPLD
* SoC
	+ MPSoC
	+ PSoC
 |

جستارهای وابسته
---------------

* دسترسی مستقیم به حافظه (DMA)
* طبقه‌بندی فلین‌ها
* دستورالعمل تک، اطلاعات چندگانه (SIMD)
* دستورالعمل‌های چندگانه، چندین داده (MIMD)

منابع
-----

1. ↑  "Microsoft Supercharges Bing Search With Programmable Chips". *WIRED*. 16 June 2014.
2. ↑  "Archived copy". Archived from the original on 2007-10-08. Retrieved 2012-08-18.`{{cite web}}`: نگهداری یادکرد:عنوان آرشیو به جای عنوان (link) "FPGA Architectures from 'A' to 'Z'" by Clive Maxfield 2006
3. ↑  "Mining hardware comparison - Bitcoin". Retrieved 17 July 2014.
4. ↑  "Non-specialized hardware comparison - Bitcoin". Retrieved 25 February 2014.
5. ↑   "بررسی شتاب دهنده‌های مبتنی بر FPGA برای شبکه‌های عصبی تحریک پذیر "، S. Mittal, NCAA، 2018
6. ↑  Morgan, Timothy Pricket (2014-09-03). "How Microsoft Is Using FPGAs To Speed Up Bing Search". Enterprise Tech. Retrieved 2018-09-18.
7. ↑  "Project Catapult". *Microsoft Research*.
8. ↑  MicroBlaze Soft Processor: Frequently Asked Questions بایگانی‌شده در ۲۰۱۱-۱۰-۲۷ توسط Wayback Machine
9. ↑   István Vassányi. "اجرای آرایه‌های پردازنده در FPGA ها". 1998. [*پیوند مرده*]
10. ↑   ژوکان وانگ و عمر حاممی "A 24 سیستم پردازنده در طراحی تراشه FPGA با شبکه در تراشه".
11. ↑   جان کنت. "Micro16 Array - یک آرایه CPU ساده"
12. ↑   کیت ایتون. "پردازنده 1000 هسته ای به دست آمده: دسکتاپ آینده شما یک سوپر کامپیوتر" خواهد بود.
13. ↑   "دانشمندان بیش از 1000 هسته را بر روی یک چیپ فشار می‌دهند".  بایگانی‌شده در ۵ مارس ۲۰۱۲ توسط Wayback Machine
14. ↑  Kienle, Frank; Wehn, Norbert; Meyr, Heinrich (December 2011). "On Complexity, Energy- and Implementation-Efficiency of Channel Decoders". *IEEE Transactions on Communications* (به انگلیسی). **59** (12): 3301–3310. doi:10.1109/tcomm.2011.092011.100157. ISSN 0090-6778.
15. ↑  Hillis, W. Daniel; Steele, Jr. Guy L. (December 1986). "Data parallel algorithms". *Communications of the ACM*. **29** (12): 1170–1183. doi:10.1145/7902.7903.
16. ↑  "بررسی ReRAM مبتنی بر معماری برای پردازش در حافظه و شبکه‌های عصبی", S. Mittal ماشین یادگیری و دانش استخراج 2018
17. 1 2  "Regular Expressions in hardware". Retrieved 17 July 2014.
18. ↑  "Compression Accelerators - Microsoft Research". *Microsoft Research* (به انگلیسی). Retrieved 2017-10-07.
19. 1 2   Farabet, Clément, et al. "سخت افزار شبکه‌های عصبی کانولوشن را برای سیستم‌های بینایی مصنوعی افزایش داد[*پیوند مرده*] ." مدار و سیستم (ISCAS)، مقالات 2010 سمپوزیوم بین‌المللی IEEE در. IEEE، 2010.

| * ن
* ب
* و
شتاب‌دهنده سخت‌افزاری |
| --- |
| تئوری | 
* ماشین محاسبه تورینگ
* رایانش موازی
* رایانش توزیع‌شده

 |
| Applications | 
* واحد پردازش گرافیکی
	+ محاسبات همه‌منظوره بر روی واحد پردازش گرافیکی
	+ DirectX
* کارت صدا
* پردازشگر سیگنال دیجیتال
* Hardware random number generation
* Artificial intelligence
* Cryptography
	+ TLS
* Machine vision
* Custom hardware attack
	+ اسکریپت (رمزنگاری)
* پردازنده‌های شبکه‌ای

 |
| Implementations | 
* High-level synthesis
	+ C to HDL
* مدار مجتمع دیجیتال برنامه‌پذیر
* مدارهای مجتمع با کاربرد خاص
* CPLD
* سامانه روی یک تراشه
	+ شبکه درون یک تراشه

 |
| معماری رایانهs | 
* معماری جریان داده
* Transport triggered
* پردازنده چندهسته‌ای
* Manycore
* Heterogeneous
* In-memory computing
* Systolic array
* نورومورفیک

 |
| مرتبط | 
* Programmable logic
* Processor
	+ طراحی پردازنده
	+ chronology
* الکترونیک دیجیتال
* مجازی‌سازی
	+ Hardware emulation
* Logic synthesis
* سامانه نهفتهs

 |

| * ن
* ب
* و
علوم رایانه |
| --- |
| Note: This template roughly follows the 2012 ACM Computing Classification System. |
| سخت‌افزار | 
* برد مدار چاپی
* دستگاه جانبی
* مدار مجتمع
* یکپارچه‌سازی کلان‌مقیاس
* سامانه روی یک تراشه
* رایانش سبز
* خودکارسازی طراحی الکترونیکی
* شتاب‌دهنده سخت‌افزاری

 |
| سازمانسامانه‌های رایانه | 
* معماری رایانه
* سامانه نهفته
* رایانش بی‌درنگ
* اطمینان‌پذیری

 |
| شبکه رایانه‌ای | 
* معماری شبکه
* پروتکل ارتباطات
* سخت‌افزار شبکه
* برنامه‌ریز شبکه
* کارایی شبکه رایانه‌ای
* سرویس شبکه‌ای

 |
| سازمان نرم‌افزار | 
* مفسر
* میان‌افزار
* ماشین مجازی
* سیستم‌عامل
* کیفیت نرم‌افزار

 |
| نظریه زبان‌های برنامه‌نویسیو ابزار توسعه نرم‌افزار | 
* الگو برنامه‌نویسی
* زبان برنامه‌نویسی
* کامپایلر
* زبان خاص دامنه
* زبان مدل‌سازی
* چارچوب نرم‌افزاری
* محیط یکپارچه توسعه نرم‌افزار
* مدیریت پیکربندی نرم‌افزار
* کتابخانه (رایانه)
* مخزن نرم‌افزاری

 |
| توسعه نرم‌افزار | 
* فرایند توسعه نرم‌افزار
* تحلیل نیازمندی‌ها
* طراحی نرم‌افزار
* ساخت نرم‌افزار
* استقرار نرم‌افزار
* تعمیر و نگهداری نرم‌افزار
* تیم برنامه‌نویسی
* نرم‌افزار متن‌باز
* برنامه‌نویسی
* آزمون نرم‌افزار

 |
| نظریه محاسبات | 
* مدل محاسبه
* زبان صوری
* نظریه اتوماتا
* نظریه رایانش‌پذیری
* نظریه پیچیدگی محاسباتی
* منطق در علوم کامپیوتر
* معنی‌شناسی (علوم رایانه)

 |
| الگوریتمها | 
* الگوریتم
* تحلیل الگوریتم‌ها
* کارایی الگوریتمی
* الگوریتم‌های تصادفی
* هندسه محاسباتی

 |
| ریاضیاترایانه | 
* ریاضیات گسسته
* احتمالات
* آمار
* نرم‌افزار ریاضی
* نظریه اطلاعات
* آنالیز ریاضی
* آنالیز عددی

 |
| سامانه اطلاعاتی | 
* پایگاه داده
* ذخیره‌سازی داده رایانه
* سامانه اطلاعات سازمانی
* نرم‌افزار اجتماعی
* سامانه اطلاعات جغرافیایی
* سامانه پشتیبانی تصمیم
* کنترل فرایند
* پایگاه داده چند رسانه‌ای
* داده‌کاوی
* کتابخانه دیجیتال
* سکوی رایانش
* بازاریابی اینترنتی
* وب جهان‌گستر
* بازیابی اطلاعات
* مستندسازی فنی

 |
| امنیت رایانه | 
* رمزنگاری
* روش‌های صوری
* خدمات امنیتی
* سامانه تشخیص نفوذ
* خرابی سخت‌افزار
* امنیت شبکه
* امنیت اطلاعات
* امنیت برنامه

 |
| تعامل انسان و رایانه | 
* طراحی تعاملی
* رایانش اجتماعی
* رایانش فراگیر
* مصورسازی
* دسترس‌پذیری رایانه
* واسط‌های کاربر
* رایانش پوشیدنی

 |
| همروندی | 
* رایانش همزمان
* رایانش موازی
* رایانش توزیع‌شده
* چندریسمانی
* چندپردازشی

 |
| هوش مصنوعی | 
* پردازش زبان‌های طبیعی
* بازنمود دانش
* بینایی رایانه‌ای
* برنامه‌ریزی خودکار
* بهینه‌سازی
* نظریه کنترل
* فلسفه هوش مصنوعی
* هوش مصنوعی توزیع شده
* استدلال خودکار
* زبان‌شناسی رایانشی
* یادگیری ماشین

 |
| یادگیری ماشین | 
* یادگیری با نظارت
* یادگیری بی‌نظارت
* یادگیری تقویتی
* یادگیری چند-وظیفه‌ای
* روش اعتبارسنجی متقابل

 |
| گرافیک رایانه‌ای | 
* پویانمایی رایانه‌ای
* رندرینگ (گرافیک رایانه‌ای)
* روتوش
* واحد پردازش گرافیکی
* واقعیت ترکیبی
* واقعیت مجازی
* فشرده‌سازی تصویر
* مدلسازی جامد

 |
| رایانشکاربردی | 
* تجارت الکترونیک
* نرم‌افزار سازمانی
* ریاضیات محاسباتی
* فیزیک محاسباتی
* شیمی محاسباتی
* زیست‌شناسی محاسباتی
* علوم اجتماعی محاسباتی
* مهندسی و علم محاسبه
* انفورماتیک پزشکی
* هنر دیجیتال
* نشر الکترونیک
* جنگ مجازی
* رأی‌گیری الکترونیکی
* بازی ویدئویی
* واژه‌پرداز
* تحقیق در عملیات
* فناوری آموزشی
* سامانه مدیریت اسناد

 |
| توجه: بنا بر سامانه رده‌بندی رایانش ای‌سی‌ام علم رایانه همچنین می‌تواند به موضوع‌ها یا زمینه‌های گوناگون تقسیم شود.
* **کتاب:علوم رایانه**
* **رده:علوم رایانه**
* **طرح کلی علوم رایانه**
* **ویکی‌پدیا:ویکی‌پروژه علوم رایانه**
* **ویکی‌انبار**
 |