• 33
  • 1399/05/06
  • 89
تفاوت واحد پردازش مرکزی CPU و واحد پردازنده گرافیکی GPU چیست؟

تفاوت واحد پردازش مرکزی CPU و واحد پردازنده گرافیکی GPU چیست؟

کلمه SoC مخفف عبارت system on a chip میباشد که معادل فارسی آن "سیستم بر روی تراشه" میباشد که در گوشی های هوشمند امروزی از اجزا و قسمت های مختلفی برای پردازش اطلاعات و داده های ورودی استفاده مینماید.

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

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

این بلوک ها بسته به طراحی میکرو معماری که دارند از نظر ابعاد و محدوده و میزان پردازش اطلاعات متفاوت هستند. یک واحد مشترک در بین این دو قسمت واحد محاسبه و منطق (ALU) است که از طریق عملیات ریاضی مانند جمع و ضرب آن را انجام میدهند.

یک واحد مشترک در پردازنده ها واحد کنترل کننده های دسترسی به حافظه (بارگذاری / ذخیره کردن) و واحد رمزگشاهای دستورالعمل و واحد مربوط به کش(cache) میباشد، که این تنها قسمت های مشترک در میان پردازنده ها همین موارد است،در ادامه به بررسی بیشتر GPU و CPU میپردازیم.

بلاک های موجود در پردازنده مرکزی CPUو پردازنده گرافیکی GPU

سی پی یو (CPU) یا واحد پردازش مرکزی گوشی چیست؟

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

CPUها اصولا به صورت ترکیب چند هسته ای وجود دارند، که این تعداد در گوشی های هوشمند در تعداد 4 تا 8 هسته میباشند، و تعداد 16 و بالاتر برای کامپیوترهای دکستاپ و سرور یافت می شوند.طراحی  CPU به صورت چند هسته ای اجازه می دهد تا چندین برنامه و عملیات را به طور همزمان اجرا کنید و باعث بهره وری از نظر مصرف انرژی و عملکرد پردازشی بهتر می شود. 

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

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

CPU ها همچنین دارای واحد هایی به نام پیش بینی انشعاب(branch predictors) که وظیفه آن ها پیش بینی داده ها و اطلاعات مورد نیاز در آینده بسیار نزدیک هستند. این باعث صرفه جویی در زمان به دلیل سرعت پایین حافظه RAM میشود و واحد بسیار مفیدی است.

زیرا بارهای پردازنده CPU اغلب شامل کدهای از نوع حلقه و شرطی میباشد که باعث تغییر مسیر پردازش این کد ها شده و از بار کاری CPU میکاهد. شما واحد پیش بینی انشعاب( (branch predictorsرا در طراحی اکثر GPU مدرن پیدا نخواهید کرد زیرا حجم کار آنها بسیار تعیین کننده تر است.


جی پی یو (GPU) یا واحد پردازش گرافیکی گوشی چیست؟

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

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

هسته های GPU دارای یک یا چند واحد ALU هستند، اما طراحی آنها با ALUهای موجود در CPU متفاوت است که به جای پردازش یک تا دو عملیات پردازشی همزمان ،میتوانند 8 ، 16 یا حتی 32 عملیات پردازش را به طور همزمان انجام دهند.

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

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

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

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

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

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

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

نکته اصلی این است که اگرچه هر دو CPU و GPU از ترانزیستورها ساخته شده و داده ها و اعداد پردازش شده اند، اما هر دو این پردازنده ها برای اهداف منحصر به فرد بهینه شده اند. خوشبختانه، Soc ها با ادغام این دو پردازنده و واحد های پردازشی دیگر در کنار یکدیگر و ترکیب آنها، بهترین و کارآمدترین بهروری خواهند داشت.