حافظه اصلی و انواع آن

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

حافظه اصلی
کلیه دستورالعمل‌ها و داده ها، برای این که مورد اجرا و پردازش قرار گیرند، نخست باید به حافظه اصلی رایانه منتقل گردند و نتایج پردازش نیز به آنجا فرستاده شود. حافظه اصلی رایانه از جنس نیمه رسانا ( الکترونیکی ) است و در نتیجه، سرعت دسترسی به اطلاعات موجود در آنها در مقایسه با انواع حافظه جانبی که بصورت مکانیکی کار میکنند مانند دیسک سخت، دیسک‌گردان، و لوح فشرده بالاست و قیمت آن نیز گران تر است اما در مقابل حافظه‌هایی، که به پردازنده نزدیکتر هستند و از ظرفیت کمتری برخوردارند مانند ثبات(به انگلیسی: Processor Registers) و حافظه نهان سی‌پی‌یو (به انگلیسی:Cache)ارزانتر و از سرعت دسترسی پایینتری بهره میبرند. حافظه‌های اصلی نیز به دو دسته تبدیل می‌شوند:
• حافظه خواندنی/ نوشتنی (به انگلیسی: RWM)، حافظه دسترسی تصادفی (به انگلیسی: Random Access Memory یا RAM) از این نوع است.

• حافظه فقط خواندنی (به انگلیسی: Read Only Memory یا ROM)
حافظه خواندنی/ نوشتنی [ویرایش]
همان طور که از نام این حافظه پیداست، پردازنده می‌تواند هم در این نوع حافظه بنویسد و هم از آنها بخواند. به طور کلی، برنامه‌ها (به انگلیسی: Codes)، دستورالعمل‌ها (به انگلیسی: Instructions)، و داده‌هایی (به انگلیسی: Data) در این حافظه قرار می‌گیرند که پردازشگر بخواهد بر روی آنها کاری انجام دهد. به این نوع حافظه ها، حافظه فَرّار نیز می‌گویند زیرا با قطع برق، محتویات آن‌ها از بین می‌رود. RAMها غالباً دو نوع اند :
• DRAM

(RAMدینامیک ) : در این نوع حافظه اطلاعات به طور اتوماتیک توسط رایانه تازه (به انگلیسی:Refresh) می‌شوند. به دلیل چگالی بیشتر داده‌ها و ارزان بودن RAM دینامیک پراستفاده است و در حافظه دسترسی تصادفی (به انگلیسی: RAM) از آن بیشتر استفاده میشود.
• SRAM

(RAMاستاتیک ) : سرعت این نوع حافظه بالاتر از نوع دینامیک است. از این نوع RAM در حافظه نهان (به انگلیس:Cache) که بین حافظه اصلی و پردازنده قرار دارد، استفاده می‌شود.
حافظه فقط خواندنی [ویرایش]
همانگونه که از نام حافظه فقط خواندنی (به انگلیسی: ROM) مستفاد میشود، پردازنده نمیتواند به صورت خودکار اطلاعات موجود در این نوع حافظه را تغییر دهد، بلکه فقط می‌تواند آن را بخواند. هنگام خاموش شدن رایانه نیز این اطلاعات از بین نمی‌رود و ثابت می ماند. سامانهٔ ورودی/خروجیِ پایه (به انگلیسی: Basic Input/Output System یا BIOS)که وظیفه تنظیمات ساختاری سخت‌افزاری رایانه و همچنین آزمایش و راه اندازی قسمت‌های گوناگون رایانه را به هنگام روشن شدن سیستم برعهده دارد در این نوع حافظه قرار داده می‌شود.

ساخت مدارهای منطقی به کمک ROM و تراشه‌های همانند [ویرایش]
ROM و ساختارهای همانند PROM وRAM از اعضای مهم خانواده تراشه‌های قابل برنامه ریزی می‌باشند. توسط ROM هر نوع تابع ترکیبی را می‌توان به وجود آورد زیرا که این تراشه در برگیرنده تمام عبارات حداقلی (Minterm ) می‌باشد ولی نکته‌ای که نباید از نظر دور داشت این است که استفاده از ROM اضافه بر کاهش سرعت سیستم در خیلی از مواقع ممکن است نوعی به هدر دادن منابع بوده و ازلحاظ اقتصادی مقرون به صرفه نباشد چون کمتر مدارهایی وجود دارند که احتیاج به استفاده از چنین آرایه‌های بزرگی داشته باشند. در موارد زیر استفاده از حافظه‌های یاد شده به منظور پیاده سازی مدارهای منطقی می‌تواند مفید و مقرون به صرفه باشد.

• الف: زمانی که مسا له در ابتدا به صورت جدول درستی بیان شده باشد زیرا که محتویات جدول مذکور مستقیماً قابل پیاده شدن بر روی ROM می‌باشد وهیچ نیازی به پردازش و ساده سازی صورت مساله نخواهد بود. جداول تبدیل انواع رمزها به یکدیگر(Look Up Tables) و کنترلرهای ریز برنامه‌ای مثالهای مناسبی از این نوع مدارهای منطقی می‌باشند. در یک چنین حالاتی درست نخواهد بود که ساختاری که مستقیماً قابل پیاده شدن بر روی ROM است را به هم زده و پردازش‌های گوناگون بر روی آن انجام دهیم به خاطر آن که بخواهیم جواب مساله را با استفاده از دریچه‌ها طراحی کرده و یا به عبارتی آن را به صورت مجموع حاصلضربهای ساده شده درآوریم.

 

• ب: زمانی که تابع مورد نظر احتیاج به عوامل حاصل ضربی خیلی زیاد داشته که بیش از امکانات PLDهای موجود باشد یک چنین حالاتی معمولاً در مورد توابع حسابی پیش می‌آید.
• ج: مواردی که به منظور ساخت بلوک‌های منطقی تغییر پذیر بوده و تعداد عوامل حاصلضربی مورد نیاز در تغییرات آینده قابل پیش بینی نباشد، در این مواقع استفاده ازحافظه‌ها یکی از راه حل‌های مناسب خواهد بود.

همان گونه که یاد آور شدیم، کاربرد مورد الف در تبدیل رمزها به همدیگر است. مثلا رایانه‌های بزرگ غالبا داده‌های خود را به صورت رمز EBCDIC به سمت دستگاه‌های چاپگر می فرستند. حال اگر بنا باشد از یک دستگاه چاپگر ارزان PC به جای چاپگر ویژه بزرگ استفاده گردد باید رمز داده‌های ارسالی را به ASCII تبدیل نمود، در یک چنین موردی جدول درستی تبدیل EBCDIC به ASCII مستقیماً قابل پیاده شدن بر روی ROM می‌باشد. رمز EBCDIC به عنوان آدرس ROM و رمز ASCII به عنوان محتویات ROM به حساب خواهند آمد.

مثال دیگر از این نوع، تبدیل رمز دودویی خالص Pure Binary داخلی سیستم‌های میکروکنترلر به رمز BCD برای نمایش اطلاعات خروجی می‌باشد. با توجه به مطالب بالا می‌توانیم نتیجه گیری کنیم که در توابعی که خروجیها به صورت مشابه با محتویات و ورودیها مشابه با ورودیهای آدرس حافظه‌ها باشند، این تراشه‌ها نامزدهای مناسبی برای پیاده سازی توابع یاد شده در بالا می‌باشند.

به عنوان مثال اگر منظور ساخت یک علامت الکتریکی رقمی متشکل از ۱۶ وضعیت گوناگون در یک پریود خود باشد، می‌توان از یک ROM ، ۱۶ خانه تک رقمی استفاده نمود. پریود موج تولید شده شانزده برابر زمان لازم برای خواندن داده‌ها از روی ROM خواهد بود. خطوط آدرس این ROM ﺗﻮسط خروجی‌های یک شمارنده ۱۶ حالتی طبیعی فرمان داده می‌شوند.
نام دیگری که در چنین مواردی برای ROM مورد استفاده قرار می‌گیرد، واژه PLE خلاصه شده عبارت Programmable Logic Element می‌باشد. این واژه به این دلیل برای نامیدن ROM مورد استفاده قرار می‌گیرد، که ROM به صورت اصولی یک تراشه تولید توابع منطقی نیز می‌باشد.

یک ابزار نرم‌افزاری به همین منظور، یعنی کمک به پیاده سازی مدارهای منطقی به کمک ROM زمانی به بازار عرضه گردید که به نام’ PLEASM ‘که خلاصه شده Programmable Logic Element Assembler می‌باشد، نامیده می‌شد. این ابزار خصوصیات طرح منطقی مورد نظر را به صورت معادلات دودویی و یا توابع حسابی قبول کرده و خروجی خود را به صورت جدول درستی که مستقیماً قابل پیاده شدن بر روی ROM و یا به عبارتی PLE باشد آماده می نمود. ROMها را در ابعاد و سرعت‌ها و

تکنولوژی‌ها گوناگون می سازند. انواع دو قطبی BIPOLAR آن با زمان دسترسی حدود ۱۰ نانو ثانیه و گونه‌های CMOS آن با حداقل زمان دسترسی تقریباً چندین برابر این مقدار در بازار وجود دارند. انواع قابل برنامه ریزی (PROM ) نیز وجود دارند که بعضی به توسط فیوزها برنامه ریزی می‌شوند و قابل پاک شدن نیستند و بعضی‌ها هم با پرتو فرابنفش قابل پاک شدن می‌باشند که به آنها EPROM گفته می‌شود.

در حافظه‌های PROMتمام ﺑﻴﺖهای کلمات در ابتدا برابر ۱ هستند.برای داشتن صفر در کلمات حافظه می باﻳﺴتی ﻳﻚ جریان پالسی در خروجیROM برای هر آدرس قرار داد بطوری که ﻓیوزی که داخلPROM قرار داردمی سوزد.در اﻳن صورت آن ﺑﻴتی که ﻓیوز آن سوخته است دارای اطلاعات صفر می‌شود. به اﻳن ترﺗﻴب کاربر متناسب با ﻧﻴاز در آزماﻳﺸگاه خودPROM را برنامه ریزی می‌کندو در هر کلمه حافظه PROMاطلاعات مورد نظر را قرار می‌دهد. گونه‌های دیگری نیز وجود دارند که از لحاظ تکنیک ساخت و طرز کار ما بین ROM و RAM قرار می‌گیرند که از آن جمله می‌توان از: E۲PROM=Electrically Erasable Programmable Read Only Memory و Flash Memoryها نام برد.

مختصری در مورد E2PROM و Flash Memory [ویرایش]
استفاده از این نوع حافظه‌ها که از نوع غیر فرار’Nonvolatile ‘بوده و یعنی از این لحاظ شبیه بقیه انواع ROM می‌باشند، زمانی به کار می‌آید که نیاز باشد تراشه بدون برداشته شدن از روی مدارقابل برنامه ریزی مجدد باشد.