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

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

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

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

مرور بخش‌ها

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

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

مشاهده بخش

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

مقالات منتخب

یک چارچوب یکپارچه برای درک هر سطح سلسله‌مراتب حافظه

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

/persian/article-fa/a-unified-framework-for-understanding-every-memory-hierarchy-level-fa

کنترل یک کش با یک ماشین حالت متناهی

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

/persian/article-fa/controlling-a-cache-with-a-finite-state-machine-fa

انسجام کش: هماهنگ نگه‌داشتن چند هسته درباره حافظه

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

/persian/article-fa/cache-coherence-keeping-multiple-cores-in-agreement-about-memory-fa

RAID: محافظت از داده با پخش آن روی چند دیسک

یک درایو ذخیره‌سازی واحد می‌تواند در هر لحظه خراب شود، و به‌طور بالقوه داده ارزشمند را بدون هیچ هشداری نابود کند. این مقاله توضیح می‌دهد RAID چگونه چند دیسک را ترکیب می‌کند تا قابلیت اطمینان، کارایی، یا هر دو را بهبود بخشد، و مبادلات بین رویکردهای mirroring، striping، و مبتنی بر پریتی را پوشش می‌دهد.

/persian/article-fa/raid-protecting-data-by-spreading-it-across-multiple-disks-fa

چگونه ضرب ماتریس را در عمل تسریع می‌کند

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

/persian/article-fa/real-memory-hierarchies-cache-blocking-and-chapter-fives-lessons-fa

چرا برنامه‌نویسی موازی سخت است و سیستم‌های موازی چگونه دسته‌بندی می‌شوند

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

/persian/article-fa/why-parallel-programming-is-hard-and-how-parallel-systems-are-classified-fa

Hardware Multithreading: پنهان کردن تأخیر با جابه‌جایی بین وظایف

Hardware Multithreading: پنهان کردن تأخیر با جابه‌جایی بین وظایف

/persian/article-fa/hardware-multithreading-hiding-latency-by-switching-between-tasks-fa

چندپردازنده‌های حافظه مشترک: تراشه‌های چندهسته‌ای واقعاً چگونه همکاری می‌کنند

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

/persian/article-fa/shared-memory-multiprocessors-how-multicore-chips-actually-cooperate-fa

مقدمه‌ای بر GPU: موازی‌سازی عظیم برای بارهای کاری سنگین از نظر داده

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

/persian/article-fa/an-introduction-to-gpus-massive-parallelism-for-data-heavy-workloads-fa

کلاسترها، کامپیوترهای در مقیاس انبار، و توپولوژی‌های شبکه

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

/persian/article-fa/clusters-warehouse-scale-computers-and-network-topologies-fa

شبکه‌سازی کلاستر: ارتباط با دنیای بیرون

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

/persian/article-fa/cluster-networking-connecting-to-the-world-outside-fa

بنچمارک کردن چندپردازنده‌ها و مدل‌سازی کارایی موازی

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

/persian/article-fa/benchmarking-multiprocessors-and-modeling-parallel-performance-fa