حافظه با هدف ذخیره سازی اطلاعات ( دائم ، موقت ) در کامپیوتر استفاده می گردد. انواع متفاوتی از حافظه درکامپیوتر استفاده می شود:
· RAM
· ROM
· Cache
· Dynamic RAM
· Static RAM
· Flash Memory
· Virtual Memory
· Video Memory
· BIOS
استفاده از حافظه صرفا" محدود به کامپیوترهای شخصی نبوده و در دستگاههای متفاوتی نظیر : تلفن های سلولی، PDA ، رادیوهای اتومبیل ، VCR ، تلویزیون و ... نیز در ابعاد وسیعی از آنها استفاده می شود.هر یک از دستگاه های فوق مدل های متفاوتی از حافظه را استفاده می کنند.
مبانی اولیه حافظه
با اینکه می توان واژه " حافظه " را بر هر نوع وسیله ذخیره سازی الکترونیکی اطلاق کرد، ولی اغلب ازاین واژه برای مشخص نمودن حافظه های سریع با قابلیت ذخیره سازی موقت استفاده می شود. در صورتیکه پردازنده مجبور باشد برای بازیابی اطلاعات مورد نیاز خود بصورت دائم از هارد دیسک استفاده کند، قطعا" سرعت عملیات پردازنده ( با آن سرعت بالا) کند خواهد گردید. زمانیکه اطلاعات مورد نیاز پردازنده در حافظه ذخیره گردند، سرعت عملیات پردازنده از بعد دستیابی به داده های مورد نیاز بیشتر خواهد گردید. از حافظه های متعددی به منظور نگهداری موقت اطلاعات استفاده می گردد.
همانگونه که در شکل فوق مشاهده می گردد ، مجموعه متنوعی ازانواع حافظه ها وجود دارد . پردازنده با توجه به ساختار سلسله مراتبی فوق به آنها دستیابی پیدا خواهد کرد. زمانیکه در سطح حافظه های دائمی نظیر هارد یا حافظه دستگاه هائی نظیر صفحه کلید، اطلاعاتی موجود باشد که پردازنده قصد استفاده از آنها را داشته باشد ، اطلاعات فوق از طریق حافظه RAM در اختیار پردازنده قرار می گیرند. در ادامه پردازنده، اطلاعات و داده های مورد نیاز خود را در حافظه Cache و دستورالعمل های خاص عملیاتی خود را در رجیسترها ذخیره می نماید.
تمام عناصر سخت افزاری ( پردازنده، هارد دیسک ، حافظه و ...) و عناصر نرم افزاری ( سیستم عامل و...) بصورت یک گروه عملیاتی به کمک یکدیگر وظایف محوله را انجام می دهند . بدون شک در این گروه " حافظه " دارای جایگاهی خاص است . از زمانیکه کامپیوتر روشن تا زمانیکه خاموش می گردد ، پردازنده بصورت پیوسته و دائم از حافظه استفاده می نماید. بلافاصله پس از روشن نمودن کامپیوتر اطلاعات اولیه ( برنامه POST) از حافظه ROM فعال شده و در ادامه وضعیت حافظه از نظر سالم بودن بررسی می گردد ( عملیات سریع خواندن ، نوشتن ) .در مرحله بعد کامپیوتر BIOS را از طریق ROM فعال خواهد کرد. BIOS اطلاعات اولیه و ضروری در رابطه با دستگاه های ذخیره سازی، وضعیت درایوی که می بایست فرآیند بوت از آنجا آغاز گردد، امنیت و ... را مشخص می کند.
در مرحله بعد سیستم عامل از هارد به درون حافظه RAM استقرار خواهد یافت . بخش های مهم و حیاتی سیستم عامل تا زمانیکه سیستم روشن است در حافظه ماندگار خواهند بود. در ادامه و زمانیکه یک برنامه توسط کاربر فعال می گردد، برنامه فوق در حافظه RAM مستقر خواهد شد. پس از استقرار یک برنامه در حافظه و آغاز سرویس دهی توسط برنامه مورد نظر در صورت ضرورت فایل های مورد نیاز برنامه فوق، در حافظه مستقر خواهند شد و در نهایت زمانی که به حیات یک برنامه خاتمه داده می شود (Close) یا یک فایل ذخیره می گردد ، اطلاعات بر روی یک رسانه ذخیره سازی دائم ذخیره و در نهایت حافظه از وجود برنامه و فایل های مرتبط ، پاکسازی ! می گردد.
همانگونه که اشاره گردید در هر زمان که اطلاعاتی ، مورد نیاز پردازنده باشد، اطلاعات درخواستی در حافظه RAM مستقر شده تا زمینه استفاده از آنان توسط پردازنده فراهم گردد. چرخه درخواست اطلاعات موجود درRAM توسط پردازنده ، پردازش اطلاعات توسط پردازنده و نوشتن اطلاعات جدید در حافظه یک سیکل کاملا" پیوسته بوده و در اکثر کامپیوترها سیکل فوق ممکن است در هر ثانیه میلیون ها مرتبه تکرار گردد.
نیاز به سرعت دلیلی بر وجود حافظه های متنوع
چرا حافظه در کامپیوتر تا بدین میزان متنوع و متفاوت است ؟ در پاسخ می توان به موارد ذیل اشاره نمود:
پردازنده های با سرعت بالا نیازمند دستیابی سریع و آسان به حجم بالائی از داده ها به منظور افزایش بهره وری و کارآئی خود می باشند. در صورتیکه پردازنده قادر به تامین و دستیابی به داده های مورد نیاز در زمان مورد نظر نباشد، می بایست عملیات خود را متوقف و در انتظار تامین داده های مورد نیاز باشد. پردازنده های جدید و با سرعت یک گیگا هرتز به حجم بالائی از داده ها ( میلیارد بایت در هر ثانیه ) نیاز خواهند داشت . پردازنده هائی با سرعت اشاره شده گران قیمت بوده و قطعا" اتلاف زمان مفید آنان مطلوب و قابل قبول نخواهد بود. طراحان کامپیوتر به منظور حل مشکل فوق ایده " لایه بندی حافظه" را مطرح نموده اند. در این راستا از حافظه های گران قیمت با میزان اندک استفاده و از حافظه های ارزان تر در حجم بیشتری استفاده به عمل می آید.
ارزانترین حافظه متداول ، هارد دیسک است . هارد دیسک یک رسانه ذخیره سازی ارزان قیمت با توان ذخیره سازی حجم بالائی از اطلاعات است . با توجه به ارزان بودن فضای ذخیره سازی اطلاعات بر روی هارد، اطلاعات مورد نظر بر روی آنها ذخیره و با استفاده از روش های متفاوتی نظیر : حافظه مجازی می توان به سادگی و به سرعت و بدون نگرانی از فضای فیزیکی حافظه RAM ، از آنها استفاده نمود.
حافظه RAM سطح دستیابی بعدی در ساختار سلسله مراتبی حافظه است . اندازه بیت یک پردازنده نشان دهنده تعداد بایت هائی از حافظه است که در یک لحظه می توان به آنها دستیابی داشت. مثلا" یک پردازنده شانزده بیتی ، قادر به پردازش دو بایت در هر لحظه است . مگاهرتز واحد سنجش سرعت پردازش در پردازنده ها است و معادل "میلیون در هر ثانیه" است . مثلا" یک کامپیوتر 32 بیتی پنتیوم iii با سرعت 800-MHz ، قادر به پردازش چهار بایت بصورت همزمان و 800 میلیون بار در ثانیه است . حافظه RAM به تنهائی دارای سرعت مناسب برای همسنگ شدن با سرعت پردازنده نیست . به همین دلیل است که از حافظه های Cache استفاده می گردد. بدیهی است هر اندازه که سرعت حافظه RAM بالا باشد مطلوب تر خواهد بود.اغلب تراشه های مربوطه امروزه دارای سرعتی بین 50 تا 70 Nanoseconds می باشند. سرعت خواندن یا نوشتن در حافظه ارتباط مستقیم با نوع حافظه استفاده شده دارد .در این راستا ممکن است از حافظه های DRAM,SDRAM,RAMBUS استفاده گردد. سرعت RAM توسط پهنا و سرعت Bus کنترل می گردد. پهنای Bus ، تعداد بایتی که می تواند بطور همزمان برای پردازنده ارسال گردد را مشخص و سرعت BUS به تعداد دفعاتی که می توان یک گروه از بیت ها را در هر ثانیه ارسال کرد اطلاق می گردد. سیکل منظم حرکت داده ها از حافظه به سمت پردازنده را Bus Cycle می گویند. مثلا" یک Bus با وضعیت : 100MHz و 32 بیت، بصورت تئوری قادر به ارسال چهار بایت به پردازنده و یکصد میلیون مرتبه در هر ثانیه است . در حالیکه یک BUS شانرده بیتی 66MHZ بصورت تئوری قادر به ارسال دو بایت و 66 میلیون مرتبه در هر ثانیه است . با توجه به مثال فوق مشاهده می گردد که با تغییر پهنای BUS از شانزده به سی و دو و سرعت از 66MHz به 100MHz سرعت ارسال داده برای پردازنده سه برابر گردید.
رجیستر و Cache
با توجه به سرعت بسیار بالای پردازنده حتی در صورت استفاده از Bus عریض وسریع همچنان مدت زمانی طول خواهد کشید تا داده ها از حافظه RAM برای پردازنده ارسال گردند. Cache با این هدف طراحی شده است که داده های مورد نیاز پردازنده را که احتمال استفاده از آنان بیشتر است ، در دسترس بیشتری قرار دهد . عملیات فوق از طریق بکارگیری مقدار اندکی از حافظه Cache که Primary یا Level 1 نامیده می شود صورت می پذیرد. ظرفیت حافظه های فوق بسیار اندک بوده و از دو کیلو بایت تا شصت و چهار کیلو بایت را شامل می گردد. نوع دوم Cache که Secodray یا level 2 نامیده می شود بر روی یک کارت حافظه و در مجاورت پردازنده قرار می گیرد. این نوع Cache دارای یک ارتباط مستقیم با پردازنده است.