بایگانی برچسب: s

پردازنده ها چطور از چند هسته استفاده می‌کنند؟

اکثر پردازنده‌های امروزی از آن‌هایی که در کامپیوترهای شخصی مورد استفاده قرار می‌گیرند تا پردازنده‌‌ی گوشی‌های هوشمند بیش از یک هسته دارند. اما هسته‌ در پردازنده‌ها به چه معنی است و تعداد هسته‌های بیشتر در یک پردازنده چه تاثیری در کارایی سیستم دارد؟

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

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

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

۲x20x60x187

در این حالت پردازنده ابتدا ۲ را در ۲۰ ضرب کرده و ‌سپس حاصل را در ۶۰ ضرب کرده و نتیجه را در ۱۸۷ ضرب می‌کند.

۲x20 
۴۰x60 
۲۴۰۰x187

اما یک پردازنده‌ی دو هسته‌ای می‌تواند دو عملیات اول را همزمان پردازش کرده و سپس عملیات سوم را پردازش کند. این کار که Parallelization یا پردازش موازی نام‌گذاری شده، باعث می‌شود تا سرعت اجرای دستورات بیشتر شود.

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

چرا تعداد هسته‌های CPU به اندازه‌ی GPU نیست؟

حال این سوال مطرح می‌شود که اگر پردازش موازی باعث افزایش سرعت می‌شود چرا CPUها مثل GPUها از چندین هسته بهره نمی‌برند؟ GPUها نیز وظیفه‌ی پردازش امور را برعهده دارند اما این پردازنده‌ها از چندین هسته بهره می‌برند. به‌عنوان مثال کارت گرافیک قدرتمند GeForce 1080 انویدیا از ۲۵۶۰ هسته بهره می‌برد این در حالی است که CPU کامپیوترهای دسکتاپ حداکثر ۱۰ هسته دارند.

۵۹aa149c-67a5-4618-8128-3bca00e94e80هرچند GPUها تعداد هسته‌های به مراتب بیشتری نسبت به CPUها دارند، اما این هسته‌ها، بسیار ضعیف‌تر بوده و با فرکانس پایین‌تری کار می‌کنند. پاسخ کوتاه به این پرسش این است که GPU یا پردازنده گرافیکی همان‌طور که از نامش پیدا است برای پردازش امور مرتبط با گرافیک مانند رندر تصاویر بازی‌ها یا نرم‌افزارهای سه‌بعدی یا ادیت ویدیو به‌کار می‌روند. اما در عوض CPU قادر به انجام پردازش‌های مختلف برای امور گوناگون است. اموری که برای پردازش به GPU سپرده می‌شوند، عموما امکان خرد کردن آن‌ها و پردازش موازی گسترده‌‌شان وجود دارد. حتی در بازی‌ها نیز بعضی از امور مانند هوش مصنوعی توسط CPU پردازش می‌شود چرا که هسته‌های ضعیف GPU قادر به پردازش تسک‌های بزرگ و پیچیده‌ی مربوط به هوش مصنوعی نیستند و از طرفی خرد کردن این دستورات در چندین تسک کوچک نیز کار دشواری است.

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

فناوری Hyper Threading  

این فناوری که توسط اینتل توسعه داده شده امکان اجرای تسک‌های همزمان بیشتر در پردازنده‌ را میسر می‌کند. هایپر-تردینگ اولین بار در سال ۲۰۰۲ و به همراه Pentium 4 HT معرفی شد. پنتیوم ۴ تنها یک هسته داشت و قادر به اجرای همزمان یک دستور بود؛ اما به کمک فناوری هایپر-تردینگ در نسخه‌ی HT این پردازنده، امکان اجرای همزمان دو دستور فراهم شد.

۷۸a1781d-fc4a-4729-9555-08378b8abf57در فناوری هایپر-تردینگ دو یا چند هسته‌ی منطقی به ازاء هر هسته‌ی فیزیکی ایجاد می‌شود و رفتار سیستم‌عامل با این هسته‌های منطقی درست مثل هسته‌های فیزیکی است. به این ترتیب تسک‌ها به‌صورت موازی پردازش شده و پردازنده با توان بیشتر شروع به پردازش امور می‌کند. در واقع پردازنده، به نوعی سیستم‌عامل را فریب و به کمک مکانیزم خاصی پردازش موازی را در هر هسته شکل می‌دهد. در این حالت منابع پردازنده به دو بخش تقسیم می‌شوند. اگر یکی از هسته‌های مجازی پردازش تسک موردنظر خود را به پایان برساند و به حالت انتظار برود، منابع در دسترس آن به پردازش سریع‌تر تسک موازی آن به هسته‌ی مجازی دیگر قرض داده می‌شود. در اکثر شرایط فناوری هایپر-تردینگ به خوبی شرایطی که پردازنده دو برابر هسته‌ داشته باشد کار می‌کند.

پردازنده‌های جدید امروزی نه تنها از چند هسته بهره می‌برند بلکه فناوری Hyper-Threading را نیز دارند. در این حالت مثلا پردازنده‌ی دو هسته‌ای با فناوری هایپر-تردینگ همچون پردازنده‌ی ۴ هسته‌ای در سیستم‌عامل شناخته می‌شود.

پردازنده‌های چند هسته‌ای

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

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

امروزه پردازنده‌های  ۴هسته‌ای، ۸هسته‌ای، ۱۶هسته‌ای یا حتی ۲۲هسته‌ای نیز وجود دارد و اکثر آن‌ها نیز از فناوری هایپر-تردینگ یا فناوری مشابه آن پشتیبانی می‌کنند که باعث می‌شود تعداد هسته‌های منطقی و فیزیکی آن‌ها به ۸، ۱۶ یا ۳۲ یا ۴۴ هسته افزایش یابد. مزیت اصلی افزایش هسته‌ها در یک پردازنده آن است که نیازی به استفاده از ۴ یا ۸ سوکت در یک مادربرد نیست و همچنین ارتباط بین هسته‌ها به مراتب بهینه‌تر انجام می‌شود.

۸ff763f9-5afb-4d63-bec4-15606d4959fbتولیدکنندگان عموما هسته‌های پردازنده را در یک IC مجتمع می‌کنند و از این چیپ به‌عنوان مالتی‌پراسسور یا CMP یاد می‌شود. پردازنده‌ی چندهسته‌ای می‌تواند بسته به معماری آن به شکل متفاوتی به منابع پردازنده دسترسی داشته باشند. به‌عنوان مثال در بعضی از معماری‌ها هر کدام از هسته‌ها حافظه‌ی کش خود را دارند و برخی نیز از حافظه‌ی کش مشترک بهره می‌برند. برخی از آن‌ها روش‌های متفاوتی برای ارتباط بین هسته‌ها و ارسال پیام به یکدیگر دارند و نحوه‌ی دسترسی آن‌ها به حافظه‌ی رم نیز متفاوت است. شبکه با توپولوژی‌های متفاوتی نیز برای ارتباط بین هسته‌ها مانند باس، رینگ و غیره به‌کار گرفته می‌شود.

هسته‌ها در پردازنده‌های چندهسته‌ای می‌توانند همگن یا ناهمگن باشند. در پردازنده‌های همگن تمام هسته‌ها دقیقا یکسان هستند. اما در پردازنده‌های چن هسته‌ای با هسته‌های ناهمگن، ممکن است هسته‌های متفاوتی داشته باشند. مثلا در معماری big.LITTLE که توسط آرم توسعه داده می‌شود دو جفت هسته با معماری کاملا متفاوت استفاده می‌شود.

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

با این حال برخی از تولیدکنندگان بازی‌های ویدیویی مانند Remedy, Valve, Epic Games و یوبی‌سافت، از موتورهایی برای تولید بازی‌های خود استفاده می‌کنند که از پردازش موازی پشتیبانی می‌کنند و البته هنوز هم بخش‌هایی از برنامه تنها فقط از طریق یک هسته پردازش می‌شوند.

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

چرا بسیاری از نرم‌افزارها از پردازش موازی پشتیبانی نمی‌کنند؟

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

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

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

منبع: زومیت

آشنایی با سخت‌افزار گوشی‌های هوشمند به زبان ساده؛ بخش اول: SoC

SoC

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

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

سیستم-روی-یک-چیپ

snapdragon-820

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

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

یک SoC واحدهای مختلفی نظیر واحد پردازش مرکزی (CPU)، واحد پردازش گرافیکی (GPU)، حافظه،‌ شبکه‌های 4G، Wi-Fi و بلوتوث را در خود جای می‌دهد و با استاندارد مشخصی تمامی قطعات ذکر شده را کنار یکدیگر میزبانی می‌کند. به لطف تولید و قدرتمندتر شدن SoCها و کاربرد گسترده‌ی آن‌ها در گوشی‌های هوشمند، تبلت‌ها و گجت‌ها از کارایی بالایی در پردازش دستورات برخوردار هستند. در ادامه به معرفی اجزای اصلی یک SoC واحد پردازش مرکزی، واحد پردازش گرافیکی، کنترل‌کننده شبکه و حافظه رم می‌پردازیم.

واحد پردازش مرکزی

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

mobile-cpu

اکثر پردازنده‌های موجود در بازار از معماری آرم استفاده می‌کنند و دلیل آن مصرف بهینه انرژی در معماری‌های این شرکت است. پردازنده‌های شرکت‌هایی مانند کوالکام، سامسونگ، مدیاتک و اپل همگی از معماری این شرکت پشتیبانی می‌کنند. در مقابل معماری x86 اینتل قرار دارد که نکته منفی آن در مصرف زیاد انرژی است. پردازنده‌های اینتل را تحت نام Atom در تلفن‌های هوشمند می‌توان مشاهده کرد.

در حال حاضر دو سری ARMv7 از رسته‌ی ۳۲ بیتی‌ و ARMv8 از رسته‌ی ۶۴ بیتی از تنوع زیادی در بین معماری‌های پردازنده گوشی‌های موبایل برخوردار هستند. هسته‌های یک پردازنده هم می‌توانند از معماری‌های متفاوتی نسبت به معماری کل واحد بهره ببرند. به عنوان مثال سامسونگ معماری هسته‌ها و هم معماری پردازنده‌های خود را از آرم دریافت می‌کند و لفظ Cortex را برای آن‌ها در نظر گرفته است.

پردازنده‌های ۶۴ بیتی

اپل با معرفی آیفون 5s و استفاده از پردازنده ۶۴ بیتی به عنوان قلب تپنده‌ی دستگاه جدید خود، تمامی کاربران و شرکت‌های رقیب را متعجب کرد. حرکت اپل سرآغاز حرکت دیگر شرکت‌ها برای ارائه گوشی‌های مبتنی بر پردازنده‌های ۶۴ بیتی بود و در نهایت گوگل در نسخه آب‌نبات چوبی از سیستم‌عامل اندروید رسما پشتیبانی از این نوع پردازشگرها را شروع کرد.

64-bit

پردازنده‌های ۶۴ و ۳۲ بیتی به طور متداولی در کامپیوتر‌های شخصی استفاده می‌شوند؛ ولی امروزه استفاده از آن‌ها در دنیای گوشی‌های هوشمند رواج پیدا کرده است. اما تفاوت پردازنده‌های ۶۴ بیتی در چیست؟

مهم‌ترین تغییر در سری جدید پردازنده‌ها بالا رفتن توان پردازشی دستگاه است. یک پردازنده ۶۴ بیتی می‌تواند تا ۲ به توان ۶۴ مقدار داده را محاسبه و به حافظه رم آدرس‌دهی کند. بنابراین در این پردازنده‌ها مدیریت حافظه بهینه‌تر، بازده دستگاه در پردازش دستورات بالاتر و پردازش داده‌ها در حجم زیاد‌تری از امور کاراتر خواهد شد. بنابراین دلیلی برای مقاومت در برابر پردازنده‌های ۶۴ بیتی وجود ندارد.

هسته‌های پردازشی

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

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

واحد پردازش گرافیکی

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

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

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

index1

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

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

معماری‌‌های ساخت GPU

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

GeForce: این معماری توسط شرکت Nvidia توسعه یافته و بر روی SoCهای خانواده Tegra استفاده می‌شود.

Adreno: معماری اختصاصی شرکت کوالکام برای پردازنده‌های گرافیکی خود است که در SoCهای ساخت این شرکت کاربرد دارند.

ARM Mali: همانطور که از اسم آن برمی‌آید پردازنده‌های Mali از معماری شرکت آرم استفاده می‌کنند و به طور گسترده‌ای در Socهای Exynos و NovaThor استفاده می‌شوند.

PowerVR: این معماری یکی از محبوب‌ترین‌ها در بین سازندگان پردازشگرهای گرافیکی محسوب می‌شود و اپل نیزدر SoCهای دستگاه‌های هوشمند خود از این معماری بهره می‌گیرد.

کنترل‌کننده شبکه

در SoCها مودم‌هایی قرار دارند که توانایی ارتباطات بی‌سیم را به دستگاه می‌بخشند. به طور مثال برای استفاده از دیتای شبکه همراه مودم‌هایی با قابلیت LTE بر روی SoC قرار می‌گیرند. برای ارتباطات دیگری نظیر بلوتوث، وای-فای، ‌GPS و GLONASS نیز بخش‌هایی مجزا در برد اصلی قرار دارند.

حافظه‌ی رم

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

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

memscheme1

سیستم‌عامل‌ موبایل‌های هوشمند به سمتی حرکت کرده‌اند که استفاده از حافظه بیش از اندازه را توجیه نمی‌کنند. سیستم‌عامل و برنامه‌های موجود در فروشگاه‌های نرم‌افزاری مقدار کمی از حافظه‌ی رم را اشغال می‌کنند. در هنگام مولتی‌تسکینگ سیستم‌عامل برنامه‌هایی که در یک مدت زمان مشخص استفاده نشده باشند را تشخیص و جای آن‌ها را در حافظه رم خالی می‌کند. به همین دلیل ویندوزفون در حافظه‌‌ی رم پایین ۵۱۲ مگابایت عملکردی روان از خود نشان می‌دهد.

با این حال نمی‌توان نتیجه گرفت که میزان بالای حافظه رم غیرکاربردی است. بیشتر بازیهای سنگین و گرافیکی، مقدار زیادی از حافظه را اشغال می‌کنند. در حالیکه اجرای این بازی‌ها در حافظه‌های ۵۱۲ مگابایت به کندی و لگ فراوان اجرا می‌شوند. بنابراین برای اجرای جدیدترین و بهترین بازی‌ها، داشتن میزان قابل قبولی از حافظه‌ی رم یک مزیت برای گوشی‌های هوشمند به شمار می‌رود.

حافظه‌ی ذخیره‌سازی

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

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

sandisk-micro-sdxc-128در بعضی از گوشی‌های موجود در بازار، علاوه بر حافظه‌ی داخلی به کاربر اجازه اضافه‌کردن حافظه‌ی جانبی نیز داده می‌شود. به طور معمول عملکرد، کارایی و سرعت بیشتر خواندن و نوشتن اطلاعات حافظه‌های داخلی به دلیل تماس مستقیم با SoC به مراتب از حافظه‌های خارجی بیشتر است.

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