حافظه یا ابزار ذخیرهسازی رایانه، ابزاری است که میتوان اطلاعات رادرآن ذخیره و باز یابی نمود. در مفهوم گسترده تر این واژه به وسایل انبارش یا ذخیرهسازی خارجی چون دیسکگردان و یا نوارگردان اطلاق میشود. وسیله ذخیره سازی نیمه هادی مستقیما به پردازنده وصل میشود.
حافظه پنهان یا Cache حافظه سریعی است که برای افزایش سرعت ارتباط سیستم با دستگاههای کندتر مورد استفاده قرار میگیرد و استفاده از آن باعث میشود که سرعت و قابلیتهای دستگاه سریع هرز نرود. مهمترین حافظه پنهان در پردازندههای مرکزی (سیپییوها) وجود دارد که به دو نوع اولیه و ثانویه (L۱ و L2) تقسیم میشود و امروزه حافظه پنهان که در پردازشگرهای مرکزی ساختن آن هزینه بیشتری دارد تا ۴ مگا بایت هم میرسد.
انواع حافظه
حافظه با هدف ذخیره سازی اطلاعات ( دائم، موقت ) در کامپیوتر استفاده میگردد و دارای انواع متفاوتی است. حافظهها را میتوان بر اساس شاخصهای متفاوتی تقسیم بندی کرد. حافظه فرار Volatile و حافظه غیرفرار Nonvolatile نمونهای از این تقسیم بندیها است. حافظههای فرار بلافاصله پس از خاموش شدن سیستم اطلاعات خود را از دست میدهند و همواره برای نگهداری اطلاعات خود به منبع تامین انرژی نیاز خواهند داشت . اغلب حافظههای رَم در این گروه قرار میگیرند. حافظههای غیرفرار دادههای خود را همچنان پس از خاموش شدن سیستم حفظ خواهند کرد. حافظه «رام» ROM نمونهای از این نوع حافظهها است. نام انواع حافظهها در زیر آمدهاست:
حافظه دسترسی تصادفی (رَم) RAM
حافظه فقط خواندنی (رام) ROM
حافظه پنهان Cache
حافظه دسترسی تصادفی پویا Dynamic RAM
حافظه دسترسی تصادفی ایستا Static RAM
حافظه فِلَش Flash Memory
حافظه مجازی Virtual Memory
حافظه ویدیویی Video Memory
بایوس (واسط سختافزار و نرمافزار) BIOS
استفاده از حافظه صرفاً محدود به رایانههای شخصی نبوده و در دستگاههای متفاوتی نظیر: تلفن همراه، رایانه جیبی، رادیوهای اتومبیل، دستگاه پخش نوار ویدیویی، تلویزیون و … نیز در ابعاد وسیعی استفاده میگردد. هر یک از دستگاههای فوق مدلهای خاصی از حافظه را استفاده مینمایند.
مبانی اولیه حافظه
با اینکه میتوان واژه «حافظه» را بر هر نوع وسیله ذخیرهسازی الکترونیکی اطلاق کرد، ولی اغلب از واژه فوق برای مشخص نمودن حافظههای سریع با قابلیت ذخیره سازی موقت استفاده میشود. در صورتیکه پردازنده مجبور باشد برای بازیابی اطلاعات مورد نیاز خود بصورت دائم از هارد دیسک استفاده نمائد، قطعاً سرعت عملیات پردازنده ( با آن سرعت بالا) کند خواهد گردید. زمانیکه اطلاعات مورد نیاز پردازنده در حافظه ذخیره گردند، سرعت عملیات پردازنده از بعد دستیابی به دادههای مورد نیاز بیشتر خواهد گردید. از حافظههای متعددی به منظور نگهداری موقت اطلاعات استفاده میگردد.
انواع حافظهها
همانگونه که در شکل فوق مشاهده میگردد، مجموعه متنوعی ازانواع حافظهها وجود دارد. پردازنده با توجه به ساختار سلسله مراتبی فوق به آنها دستیابی پیدا خواهد کرد. زمانیکه در سطح حافظههای دائمی نظیر دیسک سخت (هارد دیسک) و یا حافظه دستگاههائی نظیر صفحه کلید، اطلاعاتی موجود باشد که پردازنده قصد استفاده از آنان را داشته باشد، میبایست اطلاعات فوق از طریق حافظه رَم در اختیار پردازنده قرار گیرند. در ادامه پردازنده اطلاعات و دادههای مورد نیاز خود را در حافظه پنهان (Cache) و دستورالعملهای خاص عملیاتی خود را در ثباتها (register) ذخیره مینماید.
تمام عناصر سختافزاری (پردازنده، دیسک سخت، حافظه و …) و عناصر نرمافزاری (سیستم عامل و…) بصورت یک گروه عملیاتی بکمک یکدیگر وظایف محوله را انجام میدهند. بدون شک در این گروه «حافظه» دارای جایگاهی خاص است. از زمانیکه رایانه روشن تا زمانیکه خاموش میگردد، پردازنده بصورت پیوسته و دائم از حافظه استفاده مینماید. بلافاصله پس از روشن نمودن کامپیوتر اطلاعات اولیه ( برنامه POST) از «حافظه فقط خواندنی» (رام) فعال شده و در ادامه وضعیت حافظه از نظر سالم بودن بررسی میگردد ( عملیات سریع خواندن، نوشتن ) .در مرحله بعد کامپیوتر بایوس را ازطریق «رام» فعال خواهد کرد. بایوس اطلاعات اولیه و ضروری در رابطه با دستگاههای ذخیره سازی، وضعیت درایوی که میبایست فرآیند بوت از آنجا آغاز گردد، امنیت و … را مشخص مینماید.
در مرحله بعد سیستم عامل از دیسک سخت به درون حافظه رم استقرار خواهد یافت . بخشهای مهم و حیاتی سیستم عامل تا زمانیکه سیستم روشن است در حافظه ماندگار خواهند بود. در ادامه و زمانیکه یک برنامه توسط کاربر فعال میگردد، برنامه فوق در حافظه رم مستقر خواهد شد. پس از استقرار یک برنامه در حافظه و آغاز سرویس دهی توسط برنامه مورد نظر در صورت ضرورت فایلهای مورد نیاز برنامه فوق، در حافظه مستفر خواهند شد.و در نهایت زمانیکه به حیات یک برنامه خاتمه داده میشود (Close) و یا یک فایل ذخیره میگردد، اطلاعات بر روی یک رسانه ذخیره سازی دائم ذخیره و نهایتاً حافظه از وجود برنامه و فایلهای مرتبط، پاکسازی میگردد. همانگونه که اشاره گردید در هر زمان که اطلاعاتی، مورد نیاز پردازنده باشد، میبایست اطلاعات درخواستی در حافظه رَم مستقر تا زمینه استفاده از آنان توسط پردازنده فراهم گردد. چرخه درخواست اطلاعات موجود در رم توسط پردازنده، پردازش اطلاعات توسط پردازنده و نوشتن اطلاعات جدید در حافظه یک سیکل کاملاً پیوسته بوده و در اکثر رایانهها سیکل فوق ممکن است در هر ثانیه میلیونها مرتبه تکرار گردد.
ثبّات (رجیستر) و حافظهٔ پنهان
با توجه به سرعت بسیار بالای پردازنده حتی در صورت استفاده از «گذرگاه» Bus عریض وسریع همچنان مدت زمانی طول خواهد کشید تا دادهها از حافظه رَم برای پردازنده ارسال گردند. حافظه پنهان یا «کَش» Cache با این هدف طراحی شدهاست که دادههای مورد نیاز پردازنده را که احتمال استفاده از آنان بیشتر است، در دسترس تر قرار دهد . عملیات فوق از طریق بکارگیری مقدار اندکی از حافظه پنهان که اولیه Primary و یا «سطح ۱» Level ۱ نامیده میشود صورت میپذیرد. ظرفیت حافظههای فوق بسیار اندک بوده و از دو کیلو بایت تا ۵۱۲ کیلو بایت را، شامل میگردد. نوع دوم حافظه پنهان که ثانویه Secodray و یا «سطح ۲» level ۲ نامیده میشود بر روی یک کارت حافظه و در مجاورت پردازنده قرار میگیرد. این نوع حافظه پنهان دارای یک ارتباط مستقیم با پردازندهاست. یک مدار کنترل کننده اختصاصی بر روی برد اصلی که « کنترل کننده L۲ » نامیده میشود مسئولیت عملیات مربوطه را برعهده خواهد گرفت . با توجه به نوع پردازنده، اندازه حافظه فوق متغیر بوده و دارای دامنهای بین ۲۵۶Kb تا چند مگابایت است. برخی از پردازندههای با کارائی بالا اخیراً این نوع حافظه پنهان را بعنوان جزئی جداناپذیر در کنار خود دارند. ( بخشی از تراشه پردازنده ) در این نوع پردازندهها با توجه به اینکه Cache بخشی از پردازنده محسوب میگردد، اندازه آن متغیر بوده و بعنوان یکی از مهمترین شاخصها در کارائی پردازنده مطرح است.
نوع دیگری از رَم با نام حافظه دسترسی تصادفی ایستا (SRAM) نیز وجود داشته که در آغاز برای حافظه پنهان استفاده میگردید. این نوع حافظهها از چندین ترانزیستور ( معمولاً چهار تا شش ) برای هر یک از سلولهای حافظه خود استفاده مینمایند. حافظههای فوق دارای مجموعهای از فلیپ فلاپها با دو وضعیت خواهند بود. بنابراین حافظههای فوق قادر به بازخوانی اطلاعات بصورت پیوسته نظیر حافظههای حافظه دسترسی تصادفی پویا (DRAM) نخواهند بود. هر یک از سلولهای حافظه مادامیکه منبع تامین انرژی آنها فعال (On) باشد دادههای خود را ذخیره نگاه خواهند داشت. در این حالت ضرورتی به بازخوانی اطلاعات بصورت پریودیک نخواهد بود پ. سرعت حافظههای فوق بسیار بالا است پ، ولی بدلیل قیمت بالا، در حال حاضر بعنوان جایگزینی استاندارد برای حافظههای رَم مطرح نمیباشند.