اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

سرعت اجرای عملیات روی داده‌های ۸ بایتی در پردازنده‌های ۳۲ بیتی

+1 امتیاز
46 نمایش

سوال من اینه که وقتی با یه پردازنده‌ی ۳۲ بیتی کار می‌کنیم ولی large large int استفاده می‌کنیم که ۸ بایت هست٬ این عملیات اضافی چطوری پیاده‌سازی می‌شه و چقدر از سرعت اجرا کم می‌کنه؟ چون به هر حال باید ۶۴ بایت حافظه‌ی مربوط به یک متغیر در دو بلاک ۳۲ بیتی رو در نظر بگیریم.
یک سوال مشابه هم اینه که برعکس. وقتی حافظه‌ی مورد نیاز از ۳۲ بیت کمتر باشه (مثل char) اون وقت چی؟

در ++C زبانی بسیار کوچک‌تر و پاکیزه‌تر در تلاش برای خروج است. (Bjarne Stroustrup)
پرسیده شده دوشنبه ۲۹ آبان ۱۳۹۱ در C++ توسط برنامه‌نویس  
بازتگ شده چهارشنبه ۲۱ فروردین ۱۳۹۲ توسط admin

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

وقتی می‌گیم پردازنده ۳۲ بیتی هست یعنی حافظه‌های داخلی پردازنده هم ۳۲ بیتی هست. حالا فرض کنیم به عنوان مثال می‌خواهیم دو متغیر ۶۴ بیتی رو با هم جمع کنیم.
به صورت خلاصه این گام‌ها طی می‌شه
۱- ۴ بایت سمت راست متغیر اول از حافظه به پردازنده منتقل می‌شه.
۲- ۴ بایت سمت راست متغیر دوم از حافظه به پردازنده منتقل می‌شه.
۳- یک عمل جمع در پردازنده انجام می‌شه که دو مقدار داخل پردازنده رو جمع کرده و مقدار سربار رو به یه حافظه در پردازنده منتقل می‌کنه.
۴- مقدار محاسبه شده به ۴ بایت مربوط حافظه ارسال می‌شه.
۵- ۴ بایت سمت چپ متغیر اول از حافظه به پردازنده منتقل می‌شه.
۶- ۴ بایت سمت چپ متغیر دوم از حافظه به پردازنده منتقل می‌شه.
۷- یک عمل جمع در پردازنده انجام می‌شه که دو مقدار داخل پردازنده رو جمع می‌کنه (با توجه به سربار ایجاد شده در مرحله‌ی قبل).
۸- مقدار محاسبه شده در این مرحله هم به ۴ بایت مربوط حافظه منتقل می‌شه.
بنابراین بله تعداد عملیات خیلی بیشتر می‌شه.
برای حالت ۱۶ بیتی پردازنده‌های جدید فکر کنم با همون سرعت ۳۲ بیتی عملیات رو انجام می‌دن. البته مطمئن نیستم که سرعت برابر باشه ولی به هر حال این که چون ۱۶ بایت از ۳۲ بایت کمتره سرعت اجرای عملیات روی داده‌های ۱۶ بیتی از ۳۲ بیتی بیشتر باشه درست نیست. حداکثر می‌تونه مساوی باشه.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده چهارشنبه ۱۶ اسفند ۱۳۹۱ توسط prodo  
انتخاب شده شنبه ۳۱ فروردین ۱۳۹۲ توسط admin