اطلاعیه

Collapse
No announcement yet.

حافظه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    حافظه

    حافظه با هدف ذخیره سازی اطلاعات دائم ، موقت در کامپیوتر استفاده می گردد. از نمونه حافظه ها می توان
    نمونه های زیر را معرفی کرد . ( نمونه های مهم در این پروژه معرفی کامل شده است ) .
    RAM ، ROM ، Cache ، Dynamic RAM ، Static RAM ، Flash Memory ، Virtual Memory ، Video Memory ، BIOS
    استفاده از حافظه صرفا" محدود به کامپیوترهای شخصی نبوده و در دستگاههای متفاوتی نظیر : تلفن های
    سلولی، PDA ، رادیوهای اتومبیل ، VCR ، تلویزیون و ... نیز در ابعاد وسیعی از آنها استفاده بعمل می
    آید.هر یک از دستگاههای فوق مدل های متفاوتی از حافظه را استفاده می نمایند.
    [hr]
    مبانی اولیه حافظه
    با اینکه می توان واژه " حافظه " را بر هر نوع وسیله ذخیره سازی الکترونیکی اطلاق کرد، ولی اغلب از
    واژه فوق برای مشخص نمودن حافظه های سریع با قابلیت ذخیره سازی موقت استفاده بعمل می آید. در
    صورتیکه پردازنده مجبور باشد برای بازیابی اطلاعات مورد نیاز خود بصورت دائم از هارد دیسک استفاده
    نمائد، قطعا" سرعت عملیات پردازنده ( با آن سرعت بالا کند خواهد گردید. زمانیکه اطلاعات مورد نیاز
    پردازنده در حافظه ذخیره گردند، سرعت عملیات پردازنده از بعد دستیابی به داده های مورد نیاز بیشتر خواهد
    گردید. از حافظه های متعددی بمنظور نگهداری موقت اطلاعات استفاده می گردد.

    مجموعه متنوعی ازانواع حافظه ها وجود دارد . پردازنده با
    توجه به ساختار سلسله مراتبی فوق به آنها دستیابی پیدا خواهد کرد. زمانیکه در سطح حافظه های دائمی نظیر
    هارد و یا حافظه دستگاههائی نظیر صفحه کلید، اطلاعاتی موجود باشد که پردازنده قصد استفاده از آنان را
    داشته باشد ، می بایست اطلاعات فوق از طریق حافظه 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 و Nonvolatile نمونه ای
    از این تقسیم بندی ها است . حافظه های volatile بلافاصله پس از خاموش شدن سیستم اطلاعات خود را از
    دست می دهند. و همواره برای نگهداری اطلاعات خود به منبع تامین انرژی نیاز خواهند داشت . اغلب حافظه
    های RAM در این گروه قرار می گیرند. حافظه های Nonvolatile داده های خود را همچنان پس از خاموش
    شدن سیستم حفظ خواهند کرد. حافظه ROM نمونه ای از این نوع حافظه ها است .

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

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

    تحویل کتاب ، چند ساعت بعد مراجعه و کتاب را تجویل کتابدار خواهد داد. کتابدار، کتاب تحویلی را در بخش
    پیش بینی شده برای Cache قرار می دهد. لحظاتی بعد متقاضی دیگر مراجعه و درخواست همان کتاب را می
    نماید .کتابدار در ابتدا بخش مربوط به Cache را جستجو و در صورت یافتن کتاب ، آن را به متقاضی تحویل
    خواهد داد. در این حالت ضرورتی به مراجعه کتابدار به بخش و قفسه های مربوطه نخواهد بود. در روش فوق
    زمان تحویل کتاب به متقاضی بهبود چشمگیری پیدا خواهد کرد. در صورتیکه کتاب درخواستی توسط متقاضی
    در بخش Cache کتابخانه نباشد ، چه اتفاقی خواهد افتاد؟ در ابتدا مدت زمانی صرف خواهد شد که کتابدار به
    این اطمینان برسد که کتاب درخواستی در بخش Cache موجود نمی باشد ( جستجو) یکی از چالش های اصلی
    در رابطه با طراحی Cache به حداقل رساندن زمان جستجو در Cache است .سخت افزارهای جدید ، زمان
    فوق را به صفر نزدیک کرده اند. پس از حصول اطمینان از عدم وجود کتاب در بخش Cache ، کتابدار می
    بایست با مراجعه به بخش مربوطه آن را انتخاب و در ادامه در اختیار متقاضی قرار دهد.
    با توجه به مثال فوق ، چندین نکته مهم در رابطه با Cache استنباط می گردد:
    - تکنولوژی Cache ، استفاده از حافظه های سریع ولی کوچک ، بمنظور افزایش سرعت یک حافظه کند ولی
    با حجم بالا است
    - زمانیکه از Cache استفاده می گردد ، در ابتدا می بایست محتویات آن بمنظور یافتن اطلاعات مورد نظر
    بررسی گردد. فرآیند فوق را Cache hit می گویند. در صورتیکه اطلاعات مورد نظر در Cache موجود
    نباشند (Cache miss) ، کامپیوتر می بایست در انتظار تامین داده های خود از حافظه اصلی سیستم باشد
    حافظه ای کند ولی با حجم بالا
    - اندازه 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 بایت حافظه
    اصلی خواهند بود.

    حافظه ی مجازی
    حافظه مجازی یکی ازبخش های متداول در اکثر سیستم های عامل کامپیوترهای شخصی است . سیستم فوق با
    توجه به مزایای عمده، بسرعت متداول و با استقبال کاربران کامپیوتر مواجه شده است .
    در تکنولوژی حافظه مجازی از حافظه های جانبی ارزان قیمت نظیر هارد دیسک استفاده می گردد. در چنین
    حالتی اطلاعات موجود در حافظه اصلی که کمتر مورد استفاده قرار گرفته اند ، از حافظه خارج و در محلی
    خاص بر روی هارد دیسک ذخیره می گردند. بدین ترتیب بخش ی از حافظه اصلی آزاد و زمینه استقرار یک
    برنامه جدید در حافظه فراهم خواهد شد. عملیات ارسال اطلاعات از حافظه اصلی بر روی هارد دیسک بصورت
    خودکار انجام می گیرد.
    منبع:
    http://www.mydocument.ir/
    **همیشه به این فکر کن که خداوند با توست**
لطفا صبر کنید...
X