معماری های مختلف پردازنده و نحوه استفاده در زامارین

    سهیل صابری    

معماری های مختلف پردازنده

همون طور که میدونید ما برای خروجی گرفتن تو زامارین باید با  معماری های مختلف  پردازنده  آشنا باشید و معماری های که میخوایم اپلیکیشن ما از اونا پیشتیبانی کنه رو انتخاب کنیم.

من تو این مقاله میخوام توضیحاتی در مورد دو معماری  ARM و X86 خدمتون بدم.

قبل از اینکه بخوام معماری های مختلف پردازنده رو معرفی کنم باید با دو طراحی پردازنده RISC و CISC آشنا بشین.

RISC :

RISC (Reduced instruction set computing) به معنای مجموعه دستورات محاسباتی ساده یا مجموعه دستورات بهینه شده است.

ریسک به جای پردازش دستورالعمل های پیچیده ، از دستورات ساده تر و بهینه تر برای پردازش استفاده میکنه و همین دلیل باعث کارایی و عمکلرد بهینه تر این معماری می شه.ریسک برای پردازش از روش خط لوله (Pipe-Line) استفاده میکنه.

روش خط لوله (پردازش موازی ) پردازش مجموعه ای از دستور العمل های مرتبط با همه به طوری که خروجی یک عنصر ورودی عصنر بعدیه.

معماری ریسک بسیار ساده تر از طراحی CISC (مقایل طراحی ریسک) است به همین دلیل کارای کمتری نسبت به طراحی سیسک دارند. ریسک به دلیل دسترسی متفاوتی که به حافظه RAM داره برنامه هاش اغلب طولانی تره نسبت به برنامه هایی که با سیسک ساخته شده و بر روی طراحی دیگه قابل اجرا نیست.

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

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

CISC:

CISC (Complex instruction set computing) به معنای مجموعه دستورات محاسباتی پیچیده است.

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

CISC بر اساس جمع کردن مجموعه ای از دستورات سطح پایین به عنوان تنها یک دستور ساخته شده است.تو این معماری دستورات ساده ای مثل خواندن از حافظه ، انجام عملیات محاسباتی و ذخیره کردن در حافظه تو یک دستور جمع می شن یعنی به جای نوشتن تک تک دستورات می تونیم همه اونا رو تو یک دستور استفاده کنیم . X86 و X64  از مهم ترین معماری های هستند که با این طراحی تو بسیاری از پردازنده های اینتل و AMD مورد استفاده قرار میگیرن.

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

اما معماری CISC هم بدون عیب نیست به عنوان مثال تعداد ریجستر های عمومی در معماری CISC کم است و همچنین هزینه تولید پردازنده هایی که بر پایه CISC طراحی می شوند بسیار زیاد است

یک نکته در معماری CISC قابلیت پردازش لوله ای وحود نداره ؛ چون به دلیل پیچیدگی که دارند اندازه و فرم هایی که خواهند داشت مشخص نیست به علاوه دستورات CISC  در چرخه های متفاوتی پردازش می شوند

خب تفاوت های RISC و CISC فکر کنم فهمیدید و متوجه شدین RISC در ابزار های کوچک مثل موبایل ها که مصرف انرژی کمتری باید داشته باشند و پردازش سنگینی ندارند بهتر است و CISC در ابزار های که نیاز به پردازش سنگین و سریع دارند مثل لپ تاب کاربرد بهتری دارد پس به همین علت بالای 80 درصد گوشی های از معماری RISC برخوردار هستند.

خب فکر میکنم الان با معماری های مختلف پردازنده آشنا شدید و تفاوت های اصلی معماری ARM (بر اساس طراحی پردازنده RISC) و intel (براساس طراحی پردازنده CISC) فهمیده باشین و نیازی به توضیح دیگه ای نیست.

خب حالا میرم سر بخش اصلیمون که خروجی زامارین بود.

حتما خیلی از شما شنیدین خروجی زامارین خیلی بیشتره از اندروید استدیو ؛ ولی این بستگی به خود شما داره درسته یک مقداری بیشتره نسبت به اندروید استدیو اونم به علت کامپایل کد به زبان جاواس (فایل monoAndroid) و طبیعیه.

چیزی که روی حجم خروجی شما از زامارین تاثیر داره معماری هایی است که انتخاب می کنید که برنامه شما از اون ها پشتیبانی کنه .

من در دوره مقدماتی زامارین نحوه خروجی گرفتن از زامارین توضیح دادم و حتما عکسی که زیر قرار دادم رو دیدید

 

زامارین

 

تو این بخش شما باید معماری هایی که برنامتون ازش پشتیبانی میکنه رو انتخاب کنید حالا من هرکدوم براتون یک توضیح مختصری میدم

armeabi: این معماری از همون طور که از اسمش معلومه از خانواده arm و نوع قدیمی معماری arm و در گوشی های قدیمی ازش استفاده میشد (arm5)

armeabi-v7a : این معماری هم از خانواده  armهست و یکی از متداول ترین معماری های حال حاضره و روی 80 درصد گوشی ها از این معماری استفاده میشه

arm64-v8a : این معماری نوع 64 بیتی معماری arm و تقریبا جدیده و روی گوشی های که معماری 64 بیتی دارند از این معماری استفاده شده ولی این cpuها از برنامه هایی که با معماری armeabi-v7a نوشته شده باشه پشتیبانی میکنند.

x86: خب همون طور که می دونید این معماری از خانواده اینتل و 32 بیتی هست و روی بعضی از گوشی های استفاده میشه ولی در حال حاضر بیشتر شرکت های گوشی سازی مانند asus دارند به سمت این cpu ها میرن.

x86_64 : این نوع ، نوع 64 بیتی معماری اینتل هست

خب هر کدوم از این تیک ها یک حجمی به پروژه اضافه میکنه پیشنهاد من اینه که همه تیک ها خورده باشه چون در هر گوشی اجرا بشه ولی افرادی که میخوان حجم خروجی برنامشون کمتر بشه من بهشون پیشنهاد میکنم این تیک ها رو بزنید

armeabi-v7a , x86 , x86_64

معماری armeabi-v7a همه cpuهای arm پشتیبانی می کنند حتی cpu64 بیتی .

معماری armeabi تقریبا قدیمی شده و روی گوشی های که اندروید پایین تر از 4 دارند دیده میشه و چون ما برنامه هایی که مینویسیم با اندروید حداقل 4 پس این استفاده ما نمیشه.

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

ولی این نکته رو بگم در هر صورت با معماری های مختلف پردازنده خروجی شما مقداری حجمش بیشتره نسبت به اندروید استدیو(تقریبا حدود3مگ)

امیدوارم این مقاله براتون مفید واقع شده باشه

دسته‌بندی‌ : آموزش برنامه نویسی

One thought on “معماری های مختلف پردازنده و نحوه استفاده در زامارین”

  1. علیرضا

    توضیحات شما فوق العاده بود.ممنون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Rating*