انواع حافظه اصلی وکمکی وفرق بین آنها

حافظه با هدف ذخیره سازی اطلاعات دائم ، موقت در کامپیوتر استفاده می گردد. از نمونه حافظه ها می توان نمونه های زیر را معرفی کرد .

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 دارای یک ارتباط مستقیم با پردازنده است. یک مدارکنترل کننده اختصاصی بر روی برد اصلی که " کنترل کننده L2 " نامیده می شود مسئولیت عملیات مربوطه را برعهده خواهد گرفت .  

با توجه به نوع پردازنده ، اندازه حافظه فوق متغیر بوده و دارای دامنه ای بین256Kb تا 2MB است. برخی از پردازنده های با کارائی بالا اخیرا" این نوع Cache را بعنوان جزئی جداناپذیر در کنار خوددارند. ( بخشی از تراشه پردازنده ) در این نوع پردازنده ها با توجه به اینکه Cache بخشی از پردازنده محسوب می گردد، اندازه آن متغیر بوده و بعنوان یکی از مهمترین شاخص ها درکارائی پردازنده مطرح است.نوع دیگری از RAM با نام SRAM حافظ های با دستیابی تصادفی ایستا نیز وجود داشته که در آغازبرای Cache استفاده می گردید.  

این نوع حافظه ها از چندین ترانزیستور ( معمولا" چهار تا شش ) برای هریک از سلول های حافظه خود استفاده می نمایند. حافظه های فوق دارای مجموعه ای از فلیپ فلاپ ها با دووضعیت خواهند بود.  

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

 سرعت حافظه های فوق بسیار بالا است ، ولی بدلیل قیمت بالا ، در حال حاضر بعنوان جایگزینی استاندارد برای حافظه های RAM مطرح نمی باشند. 

انواع حافظه حافظه ها را می توان بر اساس شاخص های متفاوتی تقسیم بندی کرد . از این تقسیم بندی ها است . حافظه های volatile بلافاصله پس از خاموش شدن سیستم اطلاعات خود را ازدست می دهند. و همواره برای نگهداری اطلاعات خود به منبع تامین انرژی نیاز خواهند داشت .  

اغلب حافظه های RAM در این گروه قرار می گیرند. حافظه های Nonvolatile داده های خود را همچنان پس از خاموش شدن سیستم حفظ خواهندکرد.حافظه ROMنمونه ای ازاین نوع حافظه هااست .

.Caching اگر تا کنون برای خود کامپیوتری تهیه کرده باشید ، واژه " Cache" برای شما آشنا خواهد بود.کامپیوترهای جدید دارای Cache از نوع L1 و L2 می باشند. شاید در هنگام خرید یک کامپیوتر از طرف دوستانتان توصیه هائی به شما شده باشد مثلا" : " سعی کن از تراشه های Celeron استفاده نکنی چون دارای Cache نمی باشند! " Cache یک مفهوم کامپیوتری است که بر روی هر نوع کامپیوتر با یک شکل خاص وجود دارد. حافظه های Cache ، نرم افزارهای با قابلیت Cache هارد دیسک و صفحات Cache همه بنوعی از مفهوم Cachingاستفاده می نمایند. حافظه مجازی که توسط سیستم های عامل ارائه می گردد نیز از مفهوم فوق استفاده می نماید.مبانیCaching یک تکنولوژی استفاده شده برای زیر سیستم های حافظه ، در کامپیوتر است . مهمترین هدف یک Cache افزایش سرعت و عملکرد کامپیوتر بدون تحمیل هزینه های اضافی برای تهیه سیستم است . با استفاده از Cacheعملیات کاربران با سرعت بیشتری انجام خواهد شد.کتابداری را در نظر بگیرید که در یک کتابخانه مسئول تحویل کتاب به متقاضیان است . فرض کنید در سیستم فوق ( درخواست و تحویل کتاب ) از مفهوم Cache استفاده نمی گردد. اولین متقاصی کتابی را درخواست می نماید( فرض شده است که متقاضی خود نمی تواند مستقیما" کتاب مورد نظر را از قفسه مربوطه ،بردارد) ،کتابدار، کتاب مورد نظر را از قفسه مربوطه پیدا و در ادامه آن را تحویل متقاضی می نماید. متقاضی پس ازساعاتی مراجعه و کتاب را تحویل می دهد. کتابدار، کتاب تحویلی را مجددا" در قفسه مربوطه قرار می دهد.پس از لحظاتی یک متقاضی دیگر مراجعه و همان کتاب قبلی را درخواست می نماید ، کتابدار مجددا" می بایست به بخش مربوطه در کتابخانه مراجعه و پس از بازیابی کتاب ، آن را در اختیار متقاضی دوم قرار
Volatile
و Non دهد.همانگونه که ملاحظه می گردد ، کتابدار مکلف است برای تحویل هر کتاب ( ولو کتاب هائی که استفاده ازآنان توسط متقاضیان زیادباشد ) به بخش مربوطه مراجعه و پس از یافتن کتاب آن را در اختیار
متقاضیان قرار دهد. آیا روشی وجود دارد که با استناد به آن بتوان عملکرد و کارآئی کتابدار را بهبود بخشید ؟
در پاسخ به سوال فوق می توان با ایجاد یک سیستم Cache
برای کتابدار ، کارآئی آن را افزایش داد. فرض
کنید بخشی را با ظرفیت حداکثر ده کتاب در مجاورت ( نزدیکی ) کتابدار آماده نمائیم . کتاب هائی که توسط
متقاضیان برگردانده می شود، در بخش فوق ذخیره خواهند شد. مثال فوق را با در نظر گرفتن سیستم Cache
ایجاد شده برای کتابدار مجددا" دنبال می نمائیم . در ابتدای فعالیت روزانه ، بخش Cache
خالی بوده و هنوز
در آن کتابی قرار نگرفته است . اولین متفقاصی مراجعه و کتابی را درخواست می نماید . کتابدار می بایست به
بخش مربوطه مراجعه و کتاب را از قفسه مربوطه براشته و در اختیار متقاضی قرار دهد. متقاضی پس از
تحویل کتاب ، چند ساعت بعد مراجعه و کتاب را تجویل کتابدار خواهد داد. کتابدار، کتاب تحویلی را در بخش
پیش بینی شده برای Cache
قرار می دهد. لحظاتی بعد متقاضی دیگر مراجعه و درخواست همان کتاب را می
نماید .کتابدار در ابتدا بخش مربوط به Cache
را جستجو و در صورت یافتن کتاب ، آن را به متقاضی تحویل
خواهد داد. در این حالت ضرورتی به مراجعه کتابدار به بخش و قفسه های مربوطه نخواهد بود. در روش فوق
زمان تحویل کتاب به متقاضی بهبود چشمگیری پیدا خواهد کرد. در صورتیکه کتاب درخواستی توسط متقاضی
در بخش Cache
کتابخانه نباشد ، چه اتفاقی خواهد افتاد؟ در ابتدا مدت زمانی صرف خواهد شد که کتابدار به
این اطمینان برسد که کتاب درخواستی در بخش Cache
موجود نمی باشد ( جستجو) یکی از چالش های اصلی
در رابطه با طراحی Cache
به حداقل رساندن زمان جستجو در Cache
است .سخت افزارهای جدید ، زمان
فوق را به صفر نزدیک کرده اند. پس از حصول اطمینان از عدم وجود کتاب در بخش Cache
، کتابدار می
بایست با مراجعه به بخش مربوطه آن را انتخاب و در ادامه در اختیار متقاضی قرار دهد.
با توجه به مثال فوق ، چندین نکته مهم در رابطه با Cache
استنباط می گردد:

- تکنولوژی Cache ، استفاده از حافظه های سریع ولی کوچک ، بمنظور افزایش سرعت یک حافظه کند ولی
با حجم بالا است

- زمانیکه از Cache استفاده می گردد ، در ابتدا می بایست محتویات آن بمنظور یافتن اطلاعات مورد نظر
بررسی گردد. فرآیند فوق را Cache hit می گویند. در صورتیکه اطلاعات مورد نظر در Cache
موجود
نباشند (Cache miss
) ، کامپیوتر می بایست در انتظار تامین داده های خود از حافظه اصلی سیستم باشد
volatile نمونه ای حافظه ای کند ولی با حجم بالا

- اندازه Cache محدود بوده وسعی می گردد که ظرفیت فوق حتی المقدور زیاد باشد ، ولی بهرحال اندازه آن نسبت به رسانه های ذخیره سازی دیگر بسیار کم است .

- این امکان وجود خواهد داشت که از چندین لایه Cache استفاده گردد. CACHE درکامپیوتر
کامپیوتر، ماشینی است که زمان انجام کارها توسط آن با واحدهای خیلی کوچک اندازه گیری می گردد.زمانیکه
ریزپردازنده قصد دستیابی به حافظه اصلی را داشته باشد، می بایست مدت زمانی معادل 60 نانوثانیه را برای
این کار در نظر بگیرد. سرعت فوق بسیار بالا است ولی سرعت ریزپردازنده بمراتب بیشتر است . ریزپردازنده
قادر به داشتن سیکل هائی به اندازه دو نانوثانیه است . تفاوت سرعت بین پردازنده و حافظه کاملا" مشهود
بوده و قطعا" رضایت پردازنده در این خصوص کسب نخواهد شد. پردازنده می بایست تاوان کند بودن حافظه را
خود بپردازد . انتظار پردازنده و هرز رفتن زمان مفید وی کوچکترین تاوانی است که می بایست پردازنده
پذیرای آن باشد.بمنظور حل مشکل فوق ، فرض کنید از یک نوع حاص حافظه، با ظرفیت کم ولی با سرعت بالا 30 نانوثانیه
، استفاده گردد . سرعت دستیابی به حافظه فوق دو مرتبه سریعتر نسبت به حافظه اصلی است .این نوع
حافظه راL2 Cache
می نامند. فرض کنید از یک حافظه بمراتب سریعتر ولی با حجم کمتر استفاده و آن را
مستقیما" با پردازنده اصلی درگیر نمود. سرعت دستیابی به حافظه فوق می بایست در حد و اندازه سرعت
پردازنده باشد .این نوع حافظه ها را L1 Cache می گویند.در کامپیوتر از زیرسیستمهای متفاوتی استفاده می گردد.از Cache می توان در رابطه با اکثر زیر سیستمهای
فوق استفاده تا کارآئی آنان افزایش یابد.
تکنولوژی Cache
یکی از سوالاتی که ممکن است در ذهن خواننده این بخش خطور پیدا کند این است که " چرا تمام حافظه
کامپیوترها از نوع L1 Cache نمی باشند تا دیگر ضرورتی به استفاده از Cache
وجود نداشته باشد؟" در
پاسخ می بایست گفت که اشکالی ندارد وهمه چیز هم بخوبی کار خواهد کرد ولی قیمت کامپیوتر بطرز قابل
ملاحظه ای افزایش خواهد یافت . ایده Cache
، استفاده از یک مقدار کم حافظه ولی با سرعت بالا( قیمت بالا)
برای افزایش سرعت و کارآئی میزان زیادی حافظه ولی با سرعت پایین ( قیمت ارزان ) است .
در طراحی یک کامپیوتر هدف فراهم کردن شرایط لازم برای فعالیت پردازنده با حداکثر توان و در سریعترین
زمان است . یک تراشه 500 مگاهرتزی ، در یک ثانیه پانصد میلیون مرتبه سیکل خود را خواهد داشت ( هر
سیکل در دونانوثانیه ) . بدون استفاده از L1 و L2 Cache
، دستیابی به حافظه حدودا" 60 نانوثانیه طول
خواهد کشید. بهرحال استفاده از Cache
اثرات مثبت خود را بدنبال داشته و باعث بهبود کارآئی پردازنده می
گردد.اگر مقدار L2 Cache
معادل 256 کیلو بایت و ظرفیت حافظه اصلی معادل 64 مگابایت باشد ، 256000
بایت مربوط به Cache با استفاده از روش های موجود قادر به Cache نمودن 64000000 بایت حافظه اصلی خواهند بود.حافظه ی مجازی
حافظه مجازی یکی ازبخش های متداول در اکثر سیستم های عامل کامپیوترهای شخصی است . سیستم فوق باتوجه به مزایای عمده، بسرعت متداول و با استقبال کاربران کامپیوتر مواجه شده است .
در تکنولوژی حافظه مجازی از حافظه های جانبی ارزان قیمت نظیر هارد دیسک استفاده می گردد. در چنین
حالتی اطلاعات موجود در حافظه اصلی که کمتر مورد استفاده قرار گرفته اند ، از حافظه خارج و در محلی
خاص بر روی هارد دیسک ذخیره می گردند. بدین ترتیب بخش ی از حافظه اصلی آزاد و زمینه استقرار یک
برنامه جدید در حافظه فراهم خواهد شد. عملیات ارسال اطلاعات از حافظه اصلی بر روی هارد دیسک بصورت
خودکار انجام می گیرد.

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.