حافظه در سیستمهای کامپیوتری به مجموعهای از اجزای سختافزاری اطلاق میشود که برای ذخیرهسازی و بازیابی دادهها و دستورات مورد استفاده قرار میگیرد. واحدهای حافظه کامپیوتری به دو دسته تقسیم میشوند، از جمله حافظه موقت «RAM» که دادهها را بهطور موقت ذخیره میکند و با خاموش شدن سیستم از بین میروند، و حافظه دائمی «ROM» که دادهها را بهطور دائمی نگه میدارد. علاوه بر این، انواع مختلفی از حافظههای کمهزینه و پرسرعت مانند حافظه cache و حافظههای ذخیرهسازی، برای نگهداری اطلاعات در سطحهای مختلف از اهمیت برخوردارند. نقش حافظه در کامپیوتر اساسی است، چرا که بدون آن پردازش و اجرای برنامهها و دستورات امکانپذیر نخواهد بود.در این مقاله از مجله پیاستور به بررسی حافظه و واحدهای حافظه کامپیوتر میپردازیم.
حافظه چیست؟
حافظه دستگاههای دیجیتال است که دادهها را بهطور موقت یا بلندمدت ذخیره میکند. از کامپیوترهای دیجیتال تا هارددیسکها، دستگاههای حافظهای برای ذخیره دادهها در اختیار دارند که میتوانند دادههای کاربران یا تولیدکنندگان را ذخیره کنند. این دادهها ممکن است بهصورت برنامههای کنترلی یا برنامههایی که سیستم را راهاندازی میکنند باشند. برای ذخیره این حجم وسیع از دادهها، دستگاههای حافظه باید ظرفیت بالایی داشته باشند. چالش اصلی در طراحی این دستگاهها، داشتن ظرفیت بالا و در عین حال هزینه مقرون به صرفه است. دستگاههای حافظه باید قادر به ذخیره هم دادههای دائمی و هم دادههای آنی باشند.
ساختار حافظه
حافظهها از ثبتها «Registers» تشکیل شدهاند. هر ثبت در حافظه یک محل ذخیرهسازی است که به آن مکان حافظه نیز گفته میشود. این مکانها با استفاده از آدرس شناسایی میشوند. ظرفیت حافظه به تعداد بیتها که میتواند ذخیره کند بستگی دارد. یک المنت ذخیرهسازی به نام سلول «Cell» وجود دارد. هر ثبت از یک سلول تشکیل میشود که یک بیت داده را در خود نگه میدارد.
عملیات ذخیره سازی و بازیابی داده ها
دادهها در حافظه با فرآیندهایی به نام نوشتن «Writing» و خواندن «Reading» ذخیره و بازیابی میشوند.
کلمه در حافظه
یک کلمه «Word» به گروهی از بیتها گفته میشود که در آن واحد حافظه اطلاعات باینری ذخیره میکند. یک کلمه که از ۸ بیت تشکیل شده باشد، به آن بایت «Byte» گفته میشود.
اجزای واحد حافظه
یک واحد حافظه شامل خطوط داده «Data Lines»، خطوط انتخاب آدرس «Address Selection Lines» و خطوط کنترل «Control Lines» است که جهت انتقال دادهها را مشخص میکنند. این اجزا وظیفه دارند تا بهطور دقیق انتقال دادهها از حافظه به دیگر قسمتها یا برعکس انجام شود.
نمودار بلوکی یک واحد حافظه معمولاً این اجزا را بهصورت دقیق نشان میدهد و عملکرد آنها را در فرآیندهای ذخیرهسازی و بازیابی دادهها توضیح میدهد.
خطوط داده اطلاعاتی را فراهم میکنند که باید در حافظه ذخیره شوند. ورودیهای کنترلی انتقال مستقیم را مشخص میکنند. خطوط آدرس تعیین میکنند که کدام کلمه انتخاب شود.
زمانی که تعداد خطوط آدرس k باشد، میتوان به ۲k کلمه حافظه دسترسی داشت.
انواع حافظههای کامپیوتر
- حافظه کش: این فضای ذخیرهسازی موقت که به عنوان کش شناخته میشود، سریعتر از حافظه اصلی کامپیوتر در دسترس پردازنده قرار میگیرد. به آن حافظه CPU نیز گفته میشود، زیرا معمولاً مستقیماً درون تراشه CPU ادغام شده یا روی تراشهای جداگانه با اتصال گذرگاه به CPU قرار دارد.
- RAM: یکی از بخشهای حافظه اصلی است که به عنوان حافظه خواندن و نوشتن نیز شناخته میشود. این حافظه روی مادربرد قرار دارد و دادههای کامپیوتر بهطور موقت در آن ذخیره میشوند. همانطور که از نامش پیداست، این حافظه قابلیت خواندن و نوشتن را دارد.
- DRAM (حافظه دینامیک): این حافظه از خازن و ترانزیستور استفاده کرده و دادهها را به صورت بار الکتریکی در خازن ذخیره میکند. شامل هزاران سلول حافظه است و برای حفظ دادهها نیاز به تازهسازی بار خازن در هر چند میلیثانیه دارد. این حافظه کندتر از SRAM است.
- SRAM (حافظه استاتیک): این حافظه فقط از ترانزیستور استفاده میکند و مدارهای آن تا زمانی که برق متصل باشد، حالت خود را حفظ میکنند. شامل چندین فلیپفلاپ است که هرکدام یک بیت را ذخیره میکنند. زمان دسترسی کمتری دارد و بنابراین سریعتر است.
- ROM: این حافظه فقط خواندنی و غیر فرار است که برای ذخیره اطلاعات مهم مورد استفاده قرار میگیرد. برنامهها و دادههای ذخیرهشده روی آن فقط قابل خواندن هستند و نمیتوان آنها را تغییر داد یا حذف کرد.
- MROM (حافظه فقط خواندنی ماسکشده): اولین نوع ROM که شامل مجموعهای از دادهها یا دستورالعملهای از پیش برنامهریزیشده است. این نوع حافظه ارزانقیمت محسوب میشود.
- PROM (حافظه فقط خواندنی قابل برنامهریزی): این حافظه فقط خواندنی است اما یکبار توسط کاربر قابل برنامهریزی است. کاربر یک PROM خام خریداری کرده و از طریق برنامه خاصی دادههای مورد نیاز را روی آن مینویسد. پس از نوشتن، محتوای آن قابل پاک شدن نیست.
- EPROM (حافظه فقط خواندنی قابل برنامهریزی و پاکشدنی): نسخهای از PROM است که میتوان محتوای آن را با قرار دادن در معرض اشعه فرابنفش به مدت حدود ۴۰ دقیقه پاک کرد.
- EEPROM (حافظه فقط خواندنی قابل برنامهریزی و پاکشدنی الکتریکی): در این نوع حافظه، محتوای ذخیرهشده به صورت الکتریکی پاک میشود. این حافظه تا ۱۰,۰۰۰ بار قابلیت پاک شدن و برنامهریزی مجدد دارد. فرآیند پاکسازی و نوشتن مجدد در مدت بسیار کوتاهی، حدود ۴ تا ۱۰ میلیثانیه انجام میشود. همچنین، هر بخش از آن را میتوان بهطور انتخابی پاک و دوباره برنامهریزی کرد.
- حافظه مجازی: یک تکنیک مدیریت حافظه که در آن حافظه ثانویه به گونهای استفاده میشود که گویی بخشی از حافظه اصلی است. این حافظه با استفاده از سختافزار و نرمافزار، کمبود حافظه فیزیکی را جبران کرده و دادهها را موقتاً از RAM به فضای ذخیرهسازی دیسک منتقل میکند.
حافظه اصلی چیست؟
به آن حافظه اصلی یا حافظه داخلی نیز گفته میشود. این بخش از سیستم کامپیوتری، یک فضای ذخیرهسازی موقت است که مستقیماً توسط پردازنده مرکزی CPU قابل دسترسی است و دادهها را برای پردازش فوری نگه میدارد.
ویژگی های حافظه اصلی
- فرّار: با قطع شدن برق، دادهها از بین میروند.
- دسترسی با سرعت بالا
- ظرفیت محدود نسبت به حافظه ثانویه
نمونهها: RAM، ROM، حافظه کش
مزایای حافظه اصلی
- دسترسی سریع: دادهها بهسرعت خوانده و ذخیره میشوند.
- دسترسی مستقیم پردازنده: بدون نیاز به مراحل واسطهای
معایب حافظه اصلی
- فرّار بودن: با خاموش شدن کامپیوتر، دادهها پاک میشوند.
- ظرفیت محدود: نسبت به حافظه ثانویه، فضای کمتری دارد.
- هزینه بالا: نسبت به حافظه ثانویه گرانتر است.
کاربردهای حافظه اصلی
- ذخیرهسازی موقت
- چندوظیفهای (Multitasking)
- بافرینگ (Buffering)
- کشینگ (Caching)
حافظه ثانویه چیست؟
حافظه ثانویه یا حافظه خارجی برای ذخیرهسازی بلندمدت دادهها و برنامهها استفاده میشود. برخلاف حافظه اصلی، مستقیماً توسط CPU قابل دسترسی نیست و برای خواندن و نوشتن دادهها نیاز به عملیات ورودی/خروجی دارد.
ویژگیهای حافظه ثانویه
- غیرفرّار: دادهها حتی پس از خاموش شدن سیستم باقی میمانند.
- سرعت کمتر نسبت به حافظه اصلی
- ظرفیت ذخیرهسازی بالا
نمونهها:هارد دیسک «HDD»، درایو حالت جامد «SSD» ، دیسکهای نوری «CD، DVD، Blu-ray»
مزایای حافظه ثانویه
- غیرفرّار بودن: دادهها پس از قطع برق از بین نمیروند.
- ظرفیت بالا: امکان ذخیره حجم زیادی از دادهها
- نسبتاً ارزان: مقرونبهصرفه برای ذخیره اطلاعات زیاد
معایب حافظه ثانویه
- سرعت پایینتر: بازیابی دادهها کندتر از حافظه اصلی است.
- نیاز به عملیات ورودی/خروجی: انتقال دادهها مراحل اضافی دارد.
کاربردهای حافظه ثانویه
- ذخیرهسازی بلندمدت
- نصب سیستمعامل
- نصب نرمافزار
- پشتیبانگیری از دادهها
- ذخیره فایلهای چندرسانهای
واحدهای حافظه
واحدهای حافظه برای اندازهگیری حجم دادهها و نمایش اطلاعات استفاده میشوند.
- بیت (Bit): کوچکترین واحد ذخیرهسازی در کامپیوتر است و میتواند یکی از دو مقدار ۰ یا ۱ را داشته باشد.
- نیبل (Nibble): شامل ۴ بیت است.
- کلمه (Word): تعداد ثابتی از بیتها که در هر دستگاه ثابت است اما بین کامپیوترهای مختلف متفاوت است. کامپیوترها اطلاعات را بهصورت کلمات ذخیره میکنند.
- بایت (Byte): واحد اصلی اندازهگیری دادهها است و شامل ۸ بیت میشود. هر بایت میتواند ۲۵۶ مقدار را نمایش دهد و برای تعیین اندازه فایلها، اسناد و تصاویر به کار میرود.
- کیلوبایت (KB): معادل ۱۰۲۴ بایت است و برای نمایش اندازه فایلهای کوچک، متنها و تصاویر کمحجم استفاده میشود.
- مگابایت (MB): معادل ۱۰۲۴ کیلوبایت است. برای ذخیره متون طولانی، تصاویر با وضوح بالا و کلیپهای صوتی کوتاه استفاده میشود.
- گیگابایت (GB): معادل ۱۰۲۴ مگابایت است. فضای زیادی برای ذخیره آلبومهای عکس، فیلمهای باکیفیت و نرمافزارها فراهم میکند.
- ترابایت (TB): شامل ۱۰۲۴ گیگابایت است. برای پایگاههای داده بزرگ، مجموعههای عظیم رسانهای و ذخیرهسازی در سطح سازمانی استفاده میشود.
- پتابایت (PB): واحدی بسیار بزرگ برای کتابخانههای ویدئویی عظیم، پایگاههای داده گسترده و مجموعههای عظیم تصاویر با وضوح بالا است.
- اگزابایت (EB): برابر با ۱۰۲۴ پتابایت بوده و برای ذخیره بایگانیهای فیلم، انبارهای داده عظیم و ترافیک جهانی اینترنت استفاده میشود.
- زتابایت (ZB): معادل ۱۰۲۴ اگزابایت است و ظرفیت حجم گستردهای از دادههای اینترنت، بایگانیهای بلندمدت و تجزیهوتحلیلهای کلانداده جهانی را دارد.
- یوتابایت (YB): شامل ۱۰۲۴ زتابایت بوده و میتواند حجم عظیمی از دادهها معادل چندین بار کل محتوای اینترنت را ذخیره کند.
وظایف واحد حافظه
- ذخیره دادهها و دستورات: واحد حافظه اطلاعات و دستوراتی را که CPU برای انجام وظایف نیاز دارد، ذخیره میکند. این شامل دادههای مربوط به عملیات و برنامهها میشود.
- ردیابی نتایج میانی: نتایج موقتی پردازش را نگه میدارد.
- ذخیره نتایج نهایی: نتایج پردازش را قبل از ارسال به دستگاه خروجی ذخیره میکند.
- دریافت و ارسال ورودی و خروجی: تمامی ورودیها و خروجیها را دریافت و منتقل میکند.
تبدیل واحدها
تبدیل واحدهای حافظه بر اساس ضریب ۱۰۲۴ انجام میشود. بهعنوان مثال:
سلسلهمراتب حافظه
سلسلهمراتب حافظه به سازماندهی انواع مختلف حافظه در سیستم کامپیوترای بر اساس سرعت، هزینه و اندازه اشاره دارد. حافظههای سریعتر و گرانتر مانند ثباتها «Registers» و حافظه کش نزدیکتر به CPU قرار دارند، درحالیکه حافظههای کندتر و بزرگتر مانند RAM و هارد دیسک دورتر هستند. این چینش باعث میشود کامپیوتر کارآمدتر عمل کند، زیرا دادههای پرکاربرد در حافظههای سریعتر و دادههای کمکاربرد در حافظههای کندتر ذخیره میشوند.
نتیجهگیری
حافظه یکی از بخشهای حیاتی در سیستمهای کامپیوترای است که وظیفه ذخیرهسازی دادهها و دستورات مورد نیاز برای پردازش را بر عهده دارد. انواع مختلف حافظه، از جمله حافظه اصلی (RAM و ROM) و حافظه ثانویه مانند هارددیسک (HDD) و حافظههای جامد (SSD)، هرکدام با ویژگیها و کاربردهای متفاوت، به بهینهسازی عملکرد کامپیوتر کمک میکنند. حافظه RAM*با سرعت بالای خود امکان پردازش سریع دادهها را فراهم میکند، در حالی که ROM اطلاعات حیاتی سیستم را بهطور دائمی ذخیره مینماید. از طرفی، حافظههای ثانویه مانند هارددیسکها و SSDها ظرفیتهای گستردهای برای نگهداری دادهها در طولانیمدت ارائه میدهند. ترکیب این انواع حافظه باعث میشود کامپیوتر بتواند با سرعت، دقت و کارایی بالا وظایف مختلف را انجام دهد.