دوشنبه, ۱ مرداد, ۱۴۰۳ / 22 July, 2024
مجله ویستا

چرا دو پردازنده بهتر از یک پردازنده است...


چرا دو پردازنده بهتر از یک پردازنده است...
برای بالا بردن قدرت كامپیوتر، مردم به لطایف‌الحیل زیادی متوسل می‌شوند، كه یكی از متداول‌ترین آن‌ها، دو قلو كردن، یا سه قلو كردن، یا حتا چهار قلو كردن پردازنده‌هاست. پردازنده با حداكثر سرعت خود كار می‌كند تا عملیاتی را انجام دهد كه از نان شب هم برای كامپیوترتان واجب‌تر است. پردازنده به پردازش دستورالعمل‌هایی می‌پردازد كه برای اعمالی مانند باز كردن برنامه‌ها، كپی نمودن فایل‌ها، و تمام آن زرق و برق‌هایی كه روی نمایشگرتان بالا و پایین می‌روند، به كار می‌روند.
پردازنده‌ها به دو منبع منحصر به فرد از حافظه متوسل می شوند تا در حین پردازش‌های دیگر خود، به داده‌های مورد نظرشان نیز دست پیدا كنند. اوّلین منبع حافظه، ثبّات پردازنده است. ثبّات از نظر پردازنده همان نقشی را دارد كه حافظه برای كل كامپیوتر. اطلاعاتی كه پردازنده در حال كار با آن‌هاست، در ثبّات نگه‌داری می‌شود.
منبع دوّم حافظه به «كاشه» مشهور است؛ كه می‌توان آن را نوعی زاغه‌ی مهمات در نظر گرفت. در حالت كلی دو كاشه وجود دارد كه پردازنده‌ها می‌توانند به سراغ‌شان بروند، و در حالی كه هیچ كدام از آن‌ها در بازیابی داده‌ها به سرعت ثبّات نیستند، هر دوی آن‌ها از سرعت نسبتاً بیش‌تری نسبت به حافظه‌ی متعارف كامپیوتر یا سخت‌دیسك برخوردارند (و حتا منابع دیگر حافظه كه پردازنده می‌تواند به آن‌ها دست پیدا كند)...
حال كه پردازنده‌ی شما مسؤولیت این همه كار را در كامپیوترتان برعهده دارد، آیا عاقلانه‌تر نیست كه بیش از یكی از آن‌ها را در كامپیوتر خود نصب كنید؟ خوب، هم بله و هم خیر. داشتن بیش از یك پردازنده- یا چند پردازنده- می‌تواند سرعت‌تان را افزایش ‌دهد. این امر به نوبه‌ی خود، هزینه‌های شما را بالاتر می‌برد.
بنابراین كسی كه می‌خواهد به فكر یك كامپیوتر چند پردازنده‌ای بیفتد، باید قبل از آن تصمیم گرفته باشد كه می‌خواهد از كامپیوترش چه استفاده‌ای ببرد.
اكثر مردم كه از كامپیوترشان به عنوان یك كامپیوتر شخصی- با تاكید با شخصی‌بودن آن- استفاده می‌كنند، و امورات روزمره‌ی خود را با آن می‌گذرانند. هیچ نیازی به پردازنده‌های چند‌قلو ندارند.
پردازنده‌های چندتایی بیش‌تر در محیط‌هایی به كار می‌روند كه پای بانك‌های داده‌ای بسیار حجیم و سنگین در وسط باشد، یا جایی كه با گرافیك‌های پیچیده سروكار دارند، یا در مراكزی كه به ترافیك شدید اینترنت احتیاج داشته باشند. منتها، هیچ ضرری ندارد اگر با چند مفهوم اولیه‌ی پردازنده‌های چند‌تایی آشنا شوید تا در مورد تعدد پردازنده‌های خود و گزینه‌هایی كه پیش روی دارید، بهتر تصمیم بگیرید.
برای ورو به این بحث، اوّل از همه باید بدانید كه بیش از یك روش برای استفاده از پردازنده‌های چند قلو وجود دارد. روش «پردازش‌های چندتایی متقارن۱» منوط به دو یا چند پردازنده است كه در سیستم نصب می‌شوند و از یك حافظه و یك سخت‌دیسك واحد مشتركاً استفاده می‌كنند. در روش متقارن، عملیات پردازش واحد به طور مساوی بین پردازنده‌های مختلف تقسیم می‌گردد. روش دیگر، روش «پردازش‌های چندتایی غیر‌متقارن۲» است كه در آن نیز منابع حافظه و سیستم در بین بیش از یك پردازنده توزیع می‌گردد.
تنها تفاوتی كه در اینجا وجود دارد آن است كه پردازنده‌های مختلف به عملیات مختلفی مشغول می‌شوند. در روش غیر متقارن، یك پردازنده متصدی برنامه‌های كاربردی می‌شود، در حالی كه پردازنده‌ی دیگر، عملیات مربوط به خود سیستم عامل را به اجرا در می‌آورد.
«پردازش موازی انبوه۳» با منابع مشترك هیچ مناسبتی ندارد. در روش پردازش انبوه، هر پردازنده‌ای از حافظه‌ی مختص به خود و خط حامل خاص خود استفاده می‌كند. این به آن معنی است كه هیچ یك از پردازنده‌ها مجبور نیستند برای دسترسی به خط حامل سیستم یا حافظه منتظر بمانند، در نتیجه تمام پردازنده‌ها با حداكثر سرعت و توان خود كار می‌كنند.
● روی آوردن به پردازنده‌های چندتایی
روی آوردن به یك سیستم چند پردازنده‌ای، به چیزی بیش از خرید یك پردازنده‌ی دوم بستگی دارد. درواقع شما باید برد مادر مبتنی بر پردازش متقارن خود را با تراشه‌ی خاصی كه بتواند عمل‌كرد‌های متعدد تمام پردازنده‌های موجود را در آن واحد اداره نماید، تجهیز نمایید. در عین‌حال، پردازنده‌هایی كه می‌خواهید آن‌ها را به كار ببرید، نیز باید قابلیت پردازش متقارن را داشته باشند.
چند مورد از توابع پیچیده‌ای كه از الزامات پردازنده‌های چندتایی است، ارزش بررسی كردن را دارند. برای آن‌كه دو پردازنده‌ی موجود در سیستم از یك دیگر جلوتر نیفتند و داده‌هایی را تولید نكنند كه عمرشان به سر رسیده است، چند‌پردازشی به چیزی متكی می‌شود موسوم به «همبستگی كاشه‌ها۴».
در این‌جا یك پردازنده وارد حافظه‌ی كاشه‌كرده‌ی خود می‌شود تا تكه‌ای از اطلاعات مورد نیازش را بیرون بكشد، و پردازنده‌ی دیگر -بدون اطلاع آن یكی پردازنده- بررسی می‌كند كه آیا آن فقره‌ی خاص در آخرین لحظه به روز در آمده است یا خیر، كه اگر آن فقره به روز درآمده باشد، آخرین و جدیدترین داده‌ها را تامین ‌سازد. این همبستگی كاشه‌ها مانع از آن می‌شود كه داده‌ها به هم ریخته گردند؛ آن هم با كاركردن كم و بیش جداگانه‌ی یك یا چند پردازنده روی یك عملیات واحد.
ویژگی دیگری كه موجب بهتر كاركردن چند پردازشی می‌شود، به «نوبت‌كاری خط حامل۵» مربوط می‌شود. به منظور دست یافتن به حافظه‌ای كه در عمق بیش‌تری از كاشه‌ی پردازنده قرار دارد- مثلاً حافظه‌ی متعارف یا سخت‌دیسك كامپیوتر- پردازنده باید از روی چیزی حركت كند كه به آن خط حامل سیستم می‌گویند. هنگامی كه بیش از یك پردازنده در حال انجام وظیفه باشد، ممكن است در مورد این‌كه چه پردازنده‌ای باید اوّل سوار این خط شود، دعوایی به راه بیفتد و برخوردی رخ دهد.
نوبت كاری خط حامل به هر یك از پین‌های پردازنده‌ها، یك ولتاژ متفاوت اختصاص می‌دهد تا از روی آن معلوم شود كه چه پردازنده‌ای فعال و چه پردازنده‌ای بیكار است.
پردازنده‌ی فعال حق تقدم سوار شدن روی خط حامل را پیدا می‌كند. همین تغییر وضعیت فعال و غیر فعال كه تصادفاً بین هر دو پردازنده رخ می‌دهد، باعث می‌شود كه هیچ‌كس دست و پایش را گم نكند و در این شلوغی سرگیجه نگیرد!
در یك جمله، قابلیت پردازنده‌های چندتایی را همه دوست دارند، امّا به درد كامپیوتر‌كاران خانگی نمی‌خورد. دو‌برابر كردنِ تعداد پردازنده‌ها الزاماً به معنی دوبرابر شدنِ سرعت كامپیوترتان نیست، مگر آن‌كه همیشه از نرم‌افزار‌های خاصی استفاده كنید كه حداكثر استفاده را از پردازنده‌های دو قلو ببرند.
در مورد بیش‌تر كاربران خانگی، این مورد وجود ندارد. برای آن‌ها، و با توجه به هزینه‌ی تمام ملزومات مورد نیاز بهتر است به كلاس ماشین‌نویسی بروید تا سرعت ماشین كردن‌تان افزایش یابد و به جای آن‌كه پول بی‌زبان را خرج این قبیل زرق و برق‌های اضافی بكنید، مهارت و تسلط‌تان را در استفاده از كامپیوترتان بیش‌تر نمایید.
۱-Symmetric MultiProcessing (SMP)
۲- Asymmetric MultiProcessing (AMP)
۳-Massively Parallel Processing (MPP)
۴-Cache Coherency
۵-Bus arbitraion
منبع : ماهنامه کامپیوتر