حافظه و انواع آن در کامپیوتر
حافظه با هدف ذخیره سازی اطلاعات ( دائم ، موقت ) در کامپیوتر استفاده می گردد. انواع متفاوتی از حافظه درکامپیوتر استفاده می شود:
· RAM
· ROM
· Cache
· DynamicRAM
· StaticRAM
· FlashMemory
· VirtualMemory
· VideoMemory
· 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 تا 70Nanoseconds می باشند. سرعت خواندن یا نوشتن در حافظه ارتباط مستقیم با نوع حافظه استفاده شده دارد .در این راستا ممکن است از حافظه های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 دارای یک ارتباط مستقیم با پردازنده است. یک مدار کنترل کننده اختصاصی بر روی برد اصلی که " کنترل کنندهL2 " نامیده می شود مسئولیت عملیات مربوطه را برعهده خواهد گرفت . با توجه به نوع پردازنده، اندازه حافظه فوق متغیر بوده و دارای دامنه ای بین 256Kb تا 2MB است. برخی از پردازنده های با کارائی بالا اخیرا" این نوعCache را به عنوان جزئی جداناپذیر در کنار خود دارند. ( بخشی از تراشه پردازنده ) در این نوع پردازنده ها با توجه به اینکه Cache بخشی از پردازنده محسوب می گردد، اندازه آن متغیر بوده و به عنوان یکی از مهمترین شاخص ها در کارائی پردازنده مطرح است.
نوع دیگری ازRAM با نامSRAM ( حافظ های با دستیابی تصادفی ایستا ) نیز وجود داشته که در آغاز برایCache استفاده می گردید. این نوع حافظه ها از چندین ترانزیستور ( معمولا" چهار تا شش ) برای هر یک از سلول های حافظه خود استفاده می نمایند. حافظه های فوق دارای مجموعه ای از فلیپ فلاپ ها با دو وضعیت خواهند بود. بنابراین حافظه های فوق قادر به بازخوانی اطلاعات بصورت پیوسته نظیر حافظه هایDRAM نخواهند بود. هر یک از سلول های حافظه مادامیکه منبع تامین انرژی آنها فعال (On) باشد داده های خود را ذخیره نگاه خواهند داشت . در این حالت ضرورتی به بازخوانی اطلاعات بصورت پریودیک نخواهد بود . سرعت حافظه های فوق بسیار بالا است ، ولی به دلیل قیمت بالا ، در حال حاضر بعنوان جایگزینی استاندارد برای حافظه هایRAM مطرح نمی باشند.