دانش کامپیوتر

دانش کامپیوتر

در این بخش، به دنیای برنامه‌نویسی، الگوریتم‌ها، شبکه و زیرساخت‌های فناوری می‌پردازیم

برنامه نویسیالگوریتمشبکه های کامپیوتریزیرساخت فناوریمهندسی نرم افزارمهندسی سخت افزار

مرور بخش‌ها

برنامه‌نویسی

دنیای زبان‌های کدنویسی و توسعه نرم‌افزار

مشاهده بخش

دسته‌بندی‌های مرتبط

مقالات منتخب

تصورات غلط رایج درباره مجموعه دستورات و جمع‌بندی فصل دوم

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

/persian/article-fa/common-misconceptions-about-instruction-sets-and-what-chapter-two-teaches-fa

سخت‌افزار چگونه جمع و تفریق انجام می‌دهد و سرریز را تشخیص می‌دهد

سخت‌افزار چگونه جمع و تفریق انجام می‌دهد و سرریز را تشخیص می‌دهد

/persian/article-fa/how-hardware-performs-addition-and-subtraction-and-detects-overflow-fa

سخت‌افزار چگونه اعداد را ضرب می‌کند: از منطق ساده تا مدارهای واقعی

ضرب بسیار سخت‌افزارطلب‌تر از جمع است، چون اساساً شامل جمع تکراری و شیفت است. این مقاله الگوریتم مفهومی که سخت‌افزار برای ضرب اعداد باینری استفاده می‌کند را مرور می‌کند، توضیح می‌دهد چرا نتیجه به دو برابر عرض بیتی ورودی‌ها نیاز دارد، و نحوه تفاوت ضرب علامت‌دار با حالت بدون‌علامت را پوشش می‌دهد.

/persian/article-fa/how-hardware-multiplies-numbers-from-simple-logic-to-real-circuits-fa

سخت‌افزار چگونه تقسیم انجام می‌دهد: خارج‌قسمت، باقیمانده و موارد خاص

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

/persian/article-fa/how-hardware-performs-division-quotients-remainders-and-edge-cases-fa

کامپیوترها چگونه اعداد اعشاری را نمایش می‌دهند: استاندارد ممیز شناور

اعداد صحیح نمی‌توانند مقادیر اعشاری یا بازه عظیم بزرگی‌هایی که محاسبات علمی و مالی نیاز دارند را نمایش دهند. این مقاله توضیح می‌دهد اعداد ممیز شناور چگونه یک علامت، توان و کسر را در تعداد ثابتی بیت مطابق با استاندارد IEEE 754 کدگذاری می‌کنند، و مبادلات دقت و مسائل گرد کردن که با این روش نمایش اعداد حقیقی همراه است را پوشش می‌دهد.

/persian/article-fa/how-computers-represent-fractional-numbers-the-floating-point-standard-fa

موازی‌سازی زیرکلمه‌ای: یک دستور چگونه چند مقدار را هم‌زمان پردازش می‌کند

پردازنده‌های امروزی اغلب نیاز دارند یک عملیات ساده یکسان را به‌طور هم‌زمان روی داده‌های کوچک زیادی اعمال کنند، مانند تنظیم روشنایی میلیون‌ها پیکسل یک تصویر. این مقاله موازی‌سازی زیرکلمه‌ای، نحوه تقسیم یک رجیستر پهن به چند لِین کوچک‌تر که در یک دستور واحد پردازش می‌شوند، و چگونگی کاربرد این ایده در سخت‌افزار تجاری از طریق افزونه‌های واقعی مانند SIMD و AVX را توضیح می‌دهد.

/persian/article-fa/subword-parallelism-how-one-instruction-processes-multiple-values-at-once-fa

تسریع ضرب ماتریس و درس‌های کلیدی فصل سوم

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

/persian/article-fa/speeding-up-matrix-multiplication-and-chapter-threes-key-lessons-fa

مقدمه‌ای بر طراحی پردازنده و قوانین منطق دیجیتال

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

/persian/article-fa/introduction-to-processor-design-and-the-rules-of-digital-logic-fa

ساخت یک Datapath: اتصال رجیسترها، حافظه، و ALU

یک datapath مدار فیزیکی است که داده را در طول اجرای یک دستور از میان پردازنده حرکت می‌دهد. این مقاله بلوک‌های سازنده اساسی سخت‌افزاری مورد نیاز برای fetch، decode، و اجرای دستورات را تجزیه می‌کند، و نشان می‌دهد آن‌ها چگونه به‌هم سیم‌کشی می‌شوند تا یک datapath پردازنده کارآمد، هرچند ساده‌شده، تشکیل دهند.

/persian/article-fa/building-a-datapath-connecting-registers-memory-and-the-alu-fa

طراحی منطق کنترلی برای یک پردازنده تک‌سیکلی

یک datapath به‌تنهایی بدون سیگنال‌های کنترلی که به آن بگویند برای هر دستور چه کاری انجام دهد، هیچ کاری نمی‌کند. این مقاله توضیح می‌دهد منطق کنترلی چگونه فیلدهای opcode و function یک دستور را می‌خواند تا سیگنال‌های دقیق مورد نیاز برای مسیریابی درست داده را تولید کند، و مرور می‌کند یک پیاده‌سازی کامل تک‌سیکلی چگونه انواع مختلف دستورات را اجرا می‌کند.

/persian/article-fa/designing-control-logic-for-a-single-cycle-processor-fa

مروری بر پایپ‌لاینینگ: هم‌پوشانی اجرای دستورات

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

/persian/article-fa/an-overview-of-pipelining-overlapping-instruction-execution-fa

تبدیل یک Datapath تک‌سیکلی به یک Datapath پایپ‌لاین‌شده

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

/persian/article-fa/turning-a-single-cycle-datapath-into-a-pipelined-one-fa