بررسی ویژگی های حافظه ها | قسمت اول الفبای معماری حافظه

blog
۱۳۹۹-۰۶-۰۴
3 دقیقه

سلام خدمت همه مخاطبین عزیز سیسوگ!

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

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

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

در سیستم های نهفته ما با سه نوع حافظه سر و کله میزنیم:

  • حافظه کد : این حافظه رو معمولا از نوع Flash که به صورت فقط خواندنی هستش انتخاب میکنند چون تمایلی نداریم کدهایی که نوشتیم رو در حین برنامه با یه حرکت اشتباه از دست بدیم!
  • حافظه داده : این حافظه به علت ماهیتی که داره و لازمه در طی برنامه داده های داخلیش مدام تغییر کنن باید از نوع SRAM انتخاب بشه.
  • حافظه حالت برنامه: در حین اجرای برنامه استفاده میشه و دربرگیرنده رجیسترهای CPU (شامل General purpose و Special purpose) و رجیسترهای پریفرال ها هستش.

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

بیاید یه مثال واقعی رو بررسی کنیم!

تصویر زیر مربوط به برگه داده میکروکنترلر ATMEGA16 ساخته شرکت اتمل هستش :

 

بررسی ویژگی های حافظه ها | قسمت اول الفبای معماری حافظه

 

همونطور که در تصویر بالا میبینید این نوع میکرو 16 کیلوبایت حافظه فلش، 1 کیلوبایت حافظه SRAM و 512 بایت حافظه EEPROM داره. اولین نکته ای که جلب توجه میکنه مقادیر بسیار کم این حافظه ها هستش (کافیه با ساده ترین USB های موجود تو بازار باحداقل 8GB حافظه مقایسه شون کنید!)

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

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

ویژگی های حافظه ها

ظرفیت: خب مشخصه که ما تمایل داریم حافظه هامون ظرفیت نگهداری داده بالایی داشته باشند

فرار یا غیرفرار: توانایی نگهداری داده بدون مصرف انرژی و در حالت قطع تغذیه. حافظه های فرار مثه RAM ،SRAM ،DRAM ،SDRAM و در نهایت اغلب رجیسترهایی که در CPU یا پریفرال ها وجود دارند. حافظه های غیر فرار هم مثه انواع ROM ها و حافظه های Flash

دسترسی: دو حالت دسترسی برای حافظه ها تعریف میشه. اولین حالت Random Access هستش که اجازه میده به هر قسمتی از حافظه تنها با داشتن آدرس مدنظر دسترسی داشته باشیم. انواع RAM ها از همین نوع دسترسی استفاده میکنند. نوع دیگه دسترسی Access Security هستش که فرایند خوندن یا نوشتن تو این تیپ حافظه ها نیاز به یه سری ابزارها و اختیارات خاص داره مثه حافظه Flash میکروها که برای نوشتن کدها توی این حافظه لازمه از سخت افزار خاصی به اسم پروگرامر استفاده کنیم.

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

 

endurance

 

البته برای کم کردن این زمان ایده هایی اجرا شده که معروف ترین شون استفاده از Cache بوده که تو بعضی از پلتفرم های پیشرفته سخت افزار (مثه نمونه های جدید پردازنده های ARM) از این مورد استفاده شده ولی خب چون تو میکروهای ارزون مثه انواع AVR ها حافظه های cache رو نداریم پس بهتره چندان بهشون دل خوش نکنیم!

ایشالا در قسمت بعدی وارد حافظه خواهیم شد و بخش های مختلف حافظه رو باهم بررسی خواهیم کرد!

اطلاعات
10
0
لینک و اشتراک
profile

سعید حقیقی پور

متخصص الکترونیک

تا حالا به این فکر کردین که تو یه سیستم کامپیوتری GPU چقدر کارآمد و مهمه ولی به اندازه CPU شناخته شده نیست.یه جورایی همون "مجهولون فی الارض معروفون فی السماء" که میگن! یه حسی بهم میگه کاش بتونم مثه GPU باشم :)

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

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

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

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

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
toofan1367brn81 گفت :
۱۳۹۹-۰۶-۳۰ ۰۴:۰۹

باسلام
واقعا سایت بسیار جالب و البته اموزنده ای است
امیدوارم همیشه سالم باشید بسیار ممنون از شما

profile
E گفت :
۱۳۹۹-۰۶-۲۴ ۲۳:۳۷

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

profile
علی گفت :
۱۳۹۹-۰۶-۱۴ ۰۹:۱۱

ممنون …:)
ادامه بدین …….

profile
سعید حقیقی پور گفت :
۱۳۹۹-۰۶-۱۴ ۱۳:۳۶

سلام خدمت علی آقای گل!
خوشحالم که این مطلب مورد توجه شما واقع شده.

profile
رامین گفت :
۱۳۹۹-۰۶-۱۳ ۰۶:۴۷

تشکر از پست خوبتون . لطفا ادامه بدین?

profile
سعید حقیقی پور گفت :
۱۳۹۹-۰۶-۱۴ ۱۳:۳۵

سلام رامین جان!
ممنونم از لطفت 🙂

profile
CounterMader گفت :
۱۳۹۹-۰۶-۰۶ ۱۳:۰۱

سلام.
بسیار عالیست.امیدوارم در حد باز کردن یک حافظه پیش بروید.

profile
سعید حقیقی پور گفت :
۱۳۹۹-۰۶-۱۴ ۱۳:۳۵

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

profile
رضا گفت :
۱۳۹۹-۰۶-۰۵ ۱۳:۲۲

سلام
عالی , لطفا ادامه بدید.

profile
سعید حقیقی پور گفت :
۱۳۹۹-۰۶-۰۶ ۰۱:۵۰

سلام رضاجان!
خوشحالم از اینکه براتون مفید بوده.ایشالا در قسمت های بعدی مباحث جالب تری از حافظه ها رو خواهیم دید 🙂

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله