حافظه (رایانه)

حافظه یا ابزار ذخیره‌سازی رایانه، ابزاری است که می‌توان اطلاعات رادرآن ذخیره و باز یابی نمود. در مفهوم گسترده تر این واژه به وسایل انبارش یا ذخیره‌سازی خارجی چون دیسک‌گردان و یا نوارگردان اطلاق می‌شود. وسیله ذخیره سازی نیمه هادی مستقیما به پردازنده وصل می‌شود. حافظه پنهان یا Cache حافظه سریعی است که برای افزایش سرعت ارتباط سیستم با دستگاه‌های کندتر مورد استفاده قرار می‌گیرد و استفاده از آن باعث می‌شود که سرعت و قابلیتهای دستگاه سریع هرز نرود. مهمترین حافظه پنهان در پردازنده‌های مرکزی (سی‌پی‌یو‌ها) وجود دارد که به دو نوع اولیه و ثانویه (L۱ و L2) تقسیم می‌شود و امروزه حافظه پنهان که در پردازشگرهای مرکزی ساختن آن هزینه بیشتری دارد تا ۴ مگا بایت هم می‌رسد.

== انواع حافظه ==

حافظه با هدف ذخیره سازی اطلاعات ( دائم، موقت ) در کامپیوتر استفاده می‌گردد و دارای انواع متفاوتی است. حافظه‌ها را می‌توان بر اساس شاخص‌های متفاوتی تقسیم بندی کرد. حافظه فرار Volatile و حافظه غیرفرار Nonvolatile نمونه‌ای از این تقسیم بندی‌ها است. حافظه‌های فرار بلافاصله پس از خاموش شدن سیستم اطلاعات خود را از دست می‌دهند و همواره برای نگهداری اطلاعات خود به منبع تامین انرژی نیاز خواهند داشت . اغلب حافظه‌های رَم در این گروه قرار می‌گیرند. حافظه‌های غیرفرار داده‌های خود را همچنان پس از خاموش شدن سیستم حفظ خواهند کرد. حافظه «رام» ROM نمونه‌ای از این نوع حافظه‌ها است. نام انواع حافظه‌ها در زیر آمده‌است:

* حافظه دسترسی تصادفی (رَم) RAM
* حافظه فقط خواندنی (رام) ROM
* حافظه پنهان Cache
* حافظه دسترسی تصادفی پویا Dynamic RAM
* حافظه دسترسی تصادفی ایستا Static RAM
* حافظه فِلَش Flash Memory
* حافظه مجازی Virtual Memory
* حافظه ویدیویی Video Memory
* بایوس (واسط سخت‌افزار و نرم‌افزار) BIOS

استفاده از حافظه صرفاً محدود به رایانه‌های شخصی نبوده و در دستگاه‌های متفاوتی نظیر: تلفن همراه، رایانه جیبی، رادیوهای اتومبیل، دستگاه پخش نوار ویدیویی، تلویزیون و … نیز در ابعاد وسیعی استفاده می‌گردد. هر یک از دستگاه‌های فوق مدل‌های خاصی از حافظه را استفاده می‌نمایند.

== مبانی اولیه حافظه == با اینکه می‌توان واژه «حافظه» را بر هر نوع وسیله ذخیره‌سازی الکترونیکی اطلاق کرد، ولی اغلب از واژه فوق برای مشخص نمودن حافظه‌های سریع با قابلیت ذخیره سازی موقت استفاده می‌شود. در صورتیکه پردازنده مجبور باشد برای بازیابی اطلاعات مورد نیاز خود بصورت دائم از هارد دیسک استفاده نمائد، قطعاً سرعت عملیات پردازنده ( با آن سرعت بالا) کند خواهد گردید. زمانیکه اطلاعات مورد نیاز پردازنده در حافظه ذخیره گردند، سرعت عملیات پردازنده از بعد دستیابی به داده‌های مورد نیاز بیشتر خواهد گردید. از حافظه‌های متعددی به منظور نگهداری موقت اطلاعات استفاده می‌گردد.

همانگونه که در شکل فوق مشاهده می‌گردد، مجموعه متنوعی ازانواع حافظه‌ها وجود دارد. پردازنده با توجه به ساختار سلسله مراتبی فوق به آنها دستیابی پیدا خواهد کرد. زمانیکه در سطح حافظه‌های دائمی نظیر دیسک سخت (هارد دیسک) و یا حافظه دستگاههائی نظیر صفحه کلید، اطلاعاتی موجود باشد که پردازنده قصد استفاده از آنان را داشته باشد، می‌بایست اطلاعات فوق از طریق حافظه رَم در اختیار پردازنده قرار گیرند. در ادامه پردازنده اطلاعات و داده‌های مورد نیاز خود را در حافظه پنهان (Cache) و دستورالعمل‌های خاص عملیاتی خود را در ثبات‌ها (register) ذخیره می‌نماید.

تمام عناصر سخت‌افزاری (پردازنده، دیسک سخت، حافظه و …) و عناصر نرم‌افزاری (سیستم عامل و…) بصورت یک گروه عملیاتی بکمک یکدیگر وظایف محوله را انجام می‌دهند. بدون شک در این گروه «حافظه» دارای جایگاهی خاص است. از زمانیکه رایانه روشن تا زمانیکه خاموش می‌گردد، پردازنده بصورت پیوسته و دائم از حافظه استفاده می‌نماید. بلافاصله پس از روشن نمودن کامپیوتر اطلاعات اولیه ( برنامه POST) از «حافظه فقط خواندنی» (رام) فعال شده و در ادامه وضعیت حافظه از نظر سالم بودن بررسی می‌گردد ( عملیات سریع خواندن، نوشتن ) .در مرحله بعد کامپیوتر بایوس را ازطریق «رام» فعال خواهد کرد. بایوس اطلاعات اولیه و ضروری در رابطه با دستگاه‌های ذخیره سازی، وضعیت درایوی که می‌بایست فرآیند بوت از آنجا آغاز گردد، امنیت و … را مشخص می‌نماید.

در مرحله بعد سیستم عامل از دیسک سخت به درون حافظه رم استقرار خواهد یافت . بخش‌های مهم و حیاتی سیستم عامل تا زمانیکه سیستم روشن است در حافظه ماندگار خواهند بود. در ادامه و زمانیکه یک برنامه توسط کاربر فعال می‌گردد، برنامه فوق در حافظه رم مستقر خواهد شد. پس از استقرار یک برنامه در حافظه و آغاز سرویس دهی توسط برنامه مورد نظر در صورت ضرورت فایل‌های مورد نیاز برنامه فوق، در حافظه مستفر خواهند شد.و در نهایت زمانیکه به حیات یک برنامه خاتمه داده می‌شود (Close) و یا یک فایل ذخیره می‌گردد، اطلاعات بر روی یک رسانه ذخیره سازی دائم ذخیره و نهایتاً حافظه از وجود برنامه و فایل‌های مرتبط، پاکسازی می‌گردد. همانگونه که اشاره گردید در هر زمان که اطلاعاتی، مورد نیاز پردازنده باشد، می‌بایست اطلاعات درخواستی در حافظه رَم مستقر تا زمینه استفاده از آنان توسط پردازنده فراهم گردد. چرخه درخواست اطلاعات موجود در رم توسط پردازنده، پردازش اطلاعات توسط پردازنده و نوشتن اطلاعات جدید در حافظه یک سیکل کاملاً پیوسته بوده و در اکثر رایانه‌ها سیکل فوق ممکن است در هر ثانیه میلیون‌ها مرتبه تکرار گردد.

== نیاز به سرعت دلیلی بر وجود حافظه‌های متنوع ==

چرا حافظه در کامپیوتر تا بدین میزان متنوع و متفاوت است ؟ در پاسخ می‌توان به موارد ذیل اشاره نمود:

پردازنده‌های با سرعت بالا نیازمند دستیابی سریع و آسان به حجم بالائی از داده‌ها به منظور افزایش بهره وری و کارآئی خود می‌باشند.. در صورتیکه پردازنده قادر به تامین و دستیابی به داده‌های مورد نیاز در زمان مورد نظر نباشد، می‌بایست عملیات خود را متوقف و در انتظار تامین داده‌های مورد نیاز باشد. پردازند ه‌های جدید وبا سرعت یک گیگا هرتز به حجم بالائی از داده‌ها ( میلیارد بایت در هر ثانیه ) نیاز خواهند داشت . پردازنده هائی با سرعت اشاره شده گران قیمت بوده و قطعاً اتلاف زمان مفید آنان مطلوب و قابل قبول نخواهد بود. طراحان کامپیوتر به منظور حل مشکل فوق ایده « لایه بندی حافظه » را مطرح نموده‌اند. در این راستا از حافظه‌های گران قیمت با میزان اندک استفاده و از حافظه‌های ارزان تر در حجم بیشتری استفاده بعمل می‌آید. ارزانترین حافظه متدواول، هارد دیسک است. هارد دیسک یک رسانه ذخیره سازی ارزان قیمت با توان ذخیره سازی حجم بالائی از اطلاعات است. با توجه به ارزان بودن فضای ذخیره سازی اطلاعات بر روی هارد، اطلاعات مورد نظر بر روی آنها ذخیره و با استفاده از روش‌های متفاوتی نظیر: حافظه مجازی می‌توان بسادگی و بسرعت بدون نگرانی از فضای فیزیکی حافظه رم، از آنها استفاده نمود.

حافظه رم سطح دستیابی بعدی در ساختار سلسله مراتبی حافظه‌است . اندازه بیت یک پردازنده نشاندهنده تعداد بایت هائی از حافظه‌است که در یک لحظه می‌توان به آنها دستیابی داشت. مثلاً یک پردازنده شانزده بیتی، قادر به پردازش دو بایت در هر لحظه‌است. مگاهرتز واحد سنجش سرعت پردازش در پردازنده‌ها است و معادل «میلیون در هر ثانیه» است . مثلاً یک کامپیوتر ۳۲ بیتی پنتیوم ۳ با سرعت ۸۰۰ مگاهرتز، قادر به پردازش چهار بایت بصورت همزمان و ۸۰۰ میلیون بار در ثانیه‌است. حافظه رم بتنهائی دارای سرعت مناسب برای همسنگ شدن با سرعت پردازنده نیست بهمین دلیل است که از حافظه پنهان استفاده می‌گردد. بدیهی است هر اندازه که سرعت حافظه رم بالا باشد مطلوب تر خواهد بود.اغلب تراشه‌های مربوطه امروزه دارای سرعتی بین ۵۰ تا ۷۰ نانوثانیه می‌باشند. سرعت خواندن و یا نوشتن در حافظه ارتباط مستقیم با نوع حافظه استفاده شده دارد. در این راستا ممکن است از حافظه‌های DRAM ,SDRAM ,RAMBUS استفاده گردد.

سرعت رم توسط پهنا و سرعت باس، کنترل می‌گردد. پهنای باس، تعداد بایتی که می‌تواند بطور همزمان برای پردازنده ارسال گردد را مشخص و سرعت باس به تعداد دفعاتی که می‌توان یک گروه از بیت‌ها را در هر ثانیه ارسال کرد اطلاق می‌گردد. سیکل منظم حرکت داده‌ها از حافظه بسمت پردازنده را چرخه می‌گویند مثلاً یک گذرگاه با وضعیت : ۱۰۰ مگاهرتز و ۳۲ بیت، بصورت تئوری قادر به ارسال چهار بایت به پردازنده و یکصد میلیون مرتبه در هر ثانیه‌است. در حالیکه یک گذرگاه شانرده بیتی ۶۶ مگاهرتز بصورت تئوری قادر به ارسال دو بایت و ۶۶ میلیون مرتبه در هر ثانیه‌است. با توجه به مثال فوق مشاهده می‌گردد که با تغییر پهنای گذرگاه از شانزده به سی و دو و سرعت از ۶۶ مگاهرتز به ۱۰۰ مگاهرتز سرعت ارسال داده برای پردازنده سه برابر گردید.

== ثبّات (رجیستر) و حافظهٔ پنهان == با توجه به سرعت بسیار بالای پردازنده حتی در صورت استفاده از «گذرگاه» Bus عریض وسریع همچنان مدت زمانی طول خواهد کشید تا داده‌ها از حافظه رَم برای پردازنده ارسال گردند. حافظه پنهان یا «کَش» Cache با این هدف طراحی شده‌است که داده‌های مورد نیاز پردازنده را که احتمال استفاده از آنان بیشتر است، در دسترس تر قرار دهد . عملیات فوق از طریق بکارگیری مقدار اندکی از حافظه پنهان که اولیه Primary و یا «سطح ۱» Level ۱ نامیده می‌شود صورت می‌پذیرد. ظرفیت حافظه‌های فوق بسیار اندک بوده و از دو کیلو بایت تا ۵۱۲ کیلو بایت را، شامل می‌گردد. نوع دوم حافظه پنهان که ثانویه Secodray و یا «سطح ۲» level ۲ نامیده می‌شود بر روی یک کارت حافظه و در مجاورت پردازنده قرار می‌گیرد. این نوع حافظه پنهان دارای یک ارتباط مستقیم با پردازنده‌است. یک مدار کنترل کننده اختصاصی بر روی برد اصلی که « کنترل کننده L۲ » نامیده می‌شود مسئولیت عملیات مربوطه را برعهده خواهد گرفت . با توجه به نوع پردازنده، اندازه حافظه فوق متغیر بوده و دارای دامنه‌ای بین ۲۵۶Kb تا چند مگابایت است. برخی از پردازنده‌های با کارائی بالا اخیراً این نوع حافظه پنهان را بعنوان جزئی جداناپذیر در کنار خود دارند. ( بخشی از تراشه پردازنده ) در این نوع پردازنده‌ها با توجه به اینکه Cache بخشی از پردازنده محسوب می‌گردد، اندازه آن متغیر بوده و بعنوان یکی از مهمترین شاخص‌ها در کارائی پردازنده مطرح است.

نوع دیگری از رَم با نام حافظه دسترسی تصادفی ایستا (SRAM) نیز وجود داشته که در آغاز برای حافظه پنهان استفاده می‌گردید. این نوع حافظه‌ها از چندین ترانزیستور ( معمولاً چهار تا شش ) برای هر یک از سلول‌های حافظه خود استفاده می‌نمایند. حافظه‌های فوق دارای مجموعه‌ای از فلیپ فلاپ‌ها با دو وضعیت خواهند بود. بنابراین حافظه‌های فوق قادر به بازخوانی اطلاعات بصورت پیوسته نظیر حافظه‌های حافظه دسترسی تصادفی پویا (DRAM) نخواهند بود. هر یک از سلول‌های حافظه مادامیکه منبع تامین انرژی آنها فعال (On) باشد داده‌های خود را ذخیره نگاه خواهند داشت. در این حالت ضرورتی به بازخوانی اطلاعات بصورت پریودیک نخواهد بود پ. سرعت حافظه‌های فوق بسیار بالا است پ، ولی بدلیل قیمت بالا، در حال حاضر بعنوان جایگزینی استاندارد برای حافظه‌های رَم مطرح نمی‌باشند.

== منابع ==

* حافظه چیست؟

== جستارهای وابسته ==

* حافظه پنهان (نهانگاه)

درج دیدگاه

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