<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های علی هاشمی</title><link>https://virgool.ir/feed/@AliN7</link><description>دانشجوی کارشناسی نرم افزار دانشکده شمسی پور</description><language>fa</language><pubDate>2026-11-12 10:29:24</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>علی هاشمی</title><link>https://virgool.ir/@AliN7</link></image><item><title>تکامل معماری حافظه</title><link>https://virgool.ir/@AliN7/تکامل-معماری-حافظه-qbodpts3ugjd</link><description>مقدمهواحد پردازش مرکزی (CPU) رایانه اغلب قلب رایانه در نظر گرفته می شود ، بخشی از رایانه که داده ها از طریق آن جریان می یابند و در حین محاسبه تغییر شکل می دهند.در هر حالت ، قابلیت محاسباتی یک سیستم فقط وابسته به تعداد محاسباتی که می تواند در ثانیه انجام دهد  نیست ، بلکه به قابلیت و بازدهی داده ها طی محاسبات نیز بستگی دارد.تمام اطلاعات مورد نیاز محاسبات کامپیوتر امروزه به مکانی مرکزی به نام حافظه رایانه وارد می شوند.دسترسی به دستورالعمل ها و داده ها باید سریع باشد ، بنابراین در طول اجرای برنامه واحدهای محاسبه ای و رجیستر ها بازدهی لازم را داشته باشند. در روزهای اولیه رایانه ها ، دسترسی به حافظه به اندازه سرعت انجام محاسبات بود و یا حتی سریع تر از آن; اما با سرعت گرفتن رایانه ها و بزرگتر شدن عملیات ها ، هم از نظر اندازه ورودی و هم از نظر پیچیدگی ، دسترسی به حافظه به مراتب کندتر از سرعت انجام محاسبات شد.نقش حافظه های رایانه ای ذخیره دستورالعمل ها و عملوندها برای محاسبات است.تکامل حافظه اصلیکامپیوتر اتوماتیک متغیر گسسته اولیه الکترونیک یا کامپیوتر اولیه (EDVAC) دارای یک واحد حافظه متصل به واحد محاسبات و یک واحد کنترل بود. واحد حافظه آن نوار مغناطیسی ، کارت پانچ ، یا واحد ذخیره سازی دیگری بود که کد محاسبات همراه با پارامترهای مسئله و جداول مورد نیاز برای حل مسئله در آن ذخیره میشد.در دهه های 1960 و 1970 استفاده فراوانی از حافظه هسته مغناطیسی شد که برخلاف حافظه های طبل ، دارای قطعات نامی بود و دسترسی تصادفی به هر کلمه در حافظه را فراهم می کرد.حافظه های اولیه هسته مغناطیسی تقریباً 6 میکرو ثانیه زمان چرخه داشتند تقریباً 1000 برابر سریعتر از حافظه های درام.حافظه ترانزیستوری در دهه 1970 جایگزین حافظه هسته مغناطیسی شد و در صنعت حافظه با اختراع حافظه دسترسی تصادفی پویا (DRAM) انقلابی ایجاد کرد.حافظه های ترانزیستوزی تراکمی چند برابر بهتر از حافظه های هسته ای را ارائه می دهند.حافظه های نیمه هادی برای حفظ حالت خود انرژی مصرف می کنند.حافظه های دسترسی تصادفی پویا معایبی دارند در برابر خطاهای نرم آسیب پذیر هستند و نیاز به رفرش سازی دوره ای دارند با وجود این معایب ، DRAM ها با سوار شدن به منحنی فناوری به شکل حافظه اصلی درآمدند.رم های اولیه در سیستم MK4006 در حدود سال 1970 راه اندازی شدند. mk4006 دارای ظرفیت 1 کیلوبایت و زمان دسترسی 400 نانوثانیه بود. در پایان دهه ، ظرفیت تراشه های DRAM در MK4164 به 64 کیلوبایت و زمان دسترسی آن تا 100 نانو ثانیه افزایش یافت.گسترش فناوری اجازه داد که فرکانس پردازنده ها در همان مدت با سرعت بسیار بیشتری افزایش یابد و این امر موجب  افزایش زمان تاخیر در چرخه های حافظه شد که با پیاده سازی حافظه نهان RAM ایستا (SRAM) یا کش cache نزدیک به واحد های محسباتی پردازنده، زمان دسترسی پردازنده به حافظه کمتر شد.مکانیک حافظه نهان برای برنامه نویس شفاف بود و سخت افزار مشخص می کرد که کدام قسمت از حافظه را باید در هر زمان مشخص در حافظه نهان قرار داد.از آنجایی که تکنولوژی امکان نصب بیشتر و بیشتر ترانزیستورها با لیتوگرافی های پیشرفته تر را بر روی قالب (DIE) فراهم می کرد ، بسیاری از طراحان پردازنده تصمیم گرفتند حافظه نهان دستور را از حافظه نهان داده جدا کنند ، در حالی که سیستم هنوز مدل حافظه واحد را حفظ می کرد.سلسله مراتب حافظهسلسله مراتب حافظه در معماری Nehalemبه نظر می رسد تعجب آور باشد ، اما اصول اساسی که راهنمای طراحی EDVAC بودند هنوز بکار می روند. در این معماری، مجموعه ای از دستورالعمل ها از حافظه برداشته شده و در واحد پردازش اجرا می شوند.بخشی از سلسله مراتب حافظه که در طی سالهای گذشته بیشترین تغییر را داشته است ، لایه بین حافظه نزدیک به پردازنده و حافظه اصلی است.نقش اصلی این لایه کاهش تأخیر موثر در حافظه است.حافظه نهان برای پیش بینی قسمتهایی از حافظه استفاده می شود که کاربر به طور همزمان بر روی سیستم در حال اجرا است.سلسله مراتب ، زمانی موثر است که حافظه در برنامه با ساختار سلسله مراتبی حافظه سیستم مطابقت داشته باشد اما وقتی این کار انجام نشود، هم به عملکرد و هم به صرفه جویی در انرژی آسیب می رساند.سلسله مراتب حافظه همانطور که در بالا توضیح داده شد، از نیاز سرورها و ایستگاه های کاری تکامل یافته است. با پیشرفت تکنولوژی ، این سلسله مراتب در سیستم های سطح پایین ، از جمله تبلت ها ، تلفن های هوشمند و سیستم های نهان نیز پیاده سازی شد.امروزه یافتن حداقل سه سطح حافظه نهان در پردازنده ها امری عادی است. اولین سطح حافظه نهان به طور معمول حدود 16تا64 کیلوبایت اندازه با تأخیرهای دسترسی که 2 تا 4 دور چرخه پردازنده هستند .این اغلب توسط سطح دوم حافظه نهان پشتیبانی می شود که ممکن است بین 128 کیلوبایت تا 2 مگابایت باشد و با تاخیرهایی که 7 تا 15 زمان چرخه (فرکانس) پردازنده را دارند; همچنین سطح سوم با ظرفیت بیشتر و همینطور تاخیر بیشتر.قابلیت اطمینان و پایداریحافظه های دسترسی تصادفی پویا یا DRAM ها ، به دلیل آلودگی های موجود در بسته بندی و یا به دلیل تابش اشعه های ماورا بنفش ، همیشه در معرض خطاهای نرم هستند در نتیجه ، همیشه مداری منطقی اضافی در DRAM ها گنجانده شده است تا آنها را قابل اطمینان کنددر ابتدا، این مدار منطقی اضافی فقط برابری بود بدین معنی که یکی از تراشه های حافظه اطلاعات هشت تراشه دیگر را در خود جای میداد. امروزه از روش های تشخیص خطا و تصحیح خطا در تراشه حافظه استفاده می شود، با این حال تصحیح خطا شامل مدار منطقی ای است که در مقایسه با مدارهای برابری تک بیتی پیچیده تر است و به هزینه سیستم های حافظه می افزاید.امروزه بسیاری از سیستم های پیشرفته با استفاده از یک بایت کامل برای هر 64 بایت حافظه ، یک کد تشخیص خطای مضاعف را با یک خطا اجرا می کنند.سیستم های سطح پایین تر ممکن است از بیت های اضافی برای تشخیص خطا استفاده نکنند ، یا ممکن است از یک بیت مدار منطقی برابری استفاده کنند.تا اینکه با اختراع مدار کنترل حافظه، روش بایتی تشخیص خطا کاملا منحصر به سیستم های سطح بالا سوپر کامپیوتر ها و... شد.حافظه های ذخیره سازیتفاوت در هزینه ساخت هر سلول DRAM و سکتور دیسک ها و تفاوت تأخیر دسترسی بین این دو باعث شده است که بدنبال یک نوع حافظه باشیم ، ترجیحاً بدون قطعات متحرک ، که فاصله بین این دو را بکاهد یا کاملا از بین ببرد.فناوری در حال حاضر برای پر کردن این خلا حافظه فلش (NAND 2D) است بازده تراکم حافظه فلش بین دیسکها و DRAM ها است و تأخیر دسترسی آن ، به ویژه تأخیر در خواندن ، بسیار بهتر از دیسک است.نمودار قیمت و سرعت دسترسیعلاوه بر این ، هزینه ساخت آن در هر بیت به لطف استفاده گسترده در دستگاه های تلفن همراه و حتی لپ تاپ ها به سرعت در حال کاهش است ، طوری که ماهیت غیر فرار آن باعث می شود حافظه فلش جایگزین سیستم های بر پایه دیسک شود.در حالی که زمان خواندن فلش در مقایسه با DRAM خیلی کند نیست ، زمان نوشتن حافظه فلش بسیار کندتر از DRAM است.فلش ها به منظور استفاده در تنظیمات ترکیبی همراه با دیسک های کم هزینه برای سیستم فایل ها و ذخیره سازی پایگاه داده ها کاربرد دارند.پردازش نزدیک به داده هامدت هاست که اصل محلی بودن محاسبات اساس تصمیمات طراحی در حوزه محاسبات رایانه ای است.منطق قرار دادن داده ها در سطوح مختلف سلسله مراتب حافظه بیش از حد پیچیده و بسیار پرمصرف می شود.پس این موضوع مطرح می شود که، به جای انتقال داده ها از طریق تمام سطوح سلسله مراتب حافظه از دیسک به پردازنده و بازگشت به دیسک ، انتقال محاسبات به مکانی که داده ها واقع شده اند از نظر زمان و انرژی کارآمدتر خواهد بود.چنین روش هایی را می توان برای پردازش در درایوهای حالت ثابت (SSDs) نیز استفاده کردحافظه های  Solid State (غیر فرار) مانند حافظه فلش از نوع  (NAND) به معنی (NOT-AND) در مدار منطقی هستند و در مجموعه ( SCM) قرار میگیرند و امکان انجام عملکردهای پیچیده تر حتی نزدیک به واحد های محاسباتی را نیز فراهم می کند.ب) الگوی Netezza الف)پردازش معمولی  انتقال برخی محاسبات بجای پردازنده به SSD می تواند موجب صرفه جویی در پهنای باند و انرژی شود .این روش بیشتر در پایگاه داده های عملیاتی پیاده سازی میشود.عملیات نوشتن در SSD می تواند تاخیر برای به روزرسانی های عملیات ها را تا 65٪ کاهش دهد(نسبت به هارد دیسک) و هزینه های پهنای باند ناشی از رشته های ورود به سیستم در پایگاه های داده را تقریبا از بین  ببرد.پردازش در حافظهدر حالی که فرکانس پردازنده ها به طور پیوسته در دهه های 1980 و 1990 بهبود می یابد ، بهبود عملکرد سیستم به طور کلی با کاهش سرعت ارتباط پردازنده با سایر اجزای سیستم محدود می شود به این رویداد دیوار حافظه گفته میشود.یکی از راه حل های پیشنهاد شده برای مقابله با مشکل دیوار حافظه، پردازش در حافظه بود. processing-in-memory (PIM)با اضافه کردن مدار منطقی ویژه ای به تراشه های DRAM ، به طوری که برخی پردازش ها می توانستند مستقیماً در حافظه انجام شوند با فرض بر این که تمام حافظه مورد نیاز پردازنده را می توان در همان تراشه dram قرار داد.این روش عملکرد امیدوار کننده ای داشت و بهره وری خوبی نشان میداد اما به دو دلیل وارد عرصه تجاری نشد.1.اولین مورد این بود که DRAM ها با استفاده از یک فرایند ساخته میشدند که برای تأمین تراکم بالای سلول های رم با هزینه کم بهینه شده بود و با فناوری مدار منطقی متمرکز برای تهیه ترانزیستورهای سریع در تراشه های پردازنده ها متفاوت بود.2.دلیل دوم این بود که الگوی SMP اجازه می دهد که حوضچه های بزرگ و متمرکز حافظه به طور یکنواخت و منسجم توسط هر پردازنده دسترسی پیدا کنند و این گونه حوض های حافظه به صورت انعطاف پذیر بین پردازنده های متعدد تخصیص یابند. این در حالی است که این امکان برای PIM وجود ندارد.چون دسترسی به یک تراشه محدود است.این موارد باعث اختراع Memory Controller شدند.به جای انتقال محاسبات به حافظه، انتقال محاسبات به لایه ای سیستمی بین پردازنده و حافظه، این لایه کنترل کننده حافظه است ، یک تراشه جداگانه در مدار منطقی که عملکردهایی را در پشتیبانی از تراشه های حافظه DRAM اجرا می کند ، مانند رفرش کردن سلول های DRAM ، هدایت بیت های آدرس برای جلوگیری از ایجاد سلول های معیوب روی تراشه ، انجام تشخیص خطا و تصحیح خطا و انجام خودآزمایی.امروزه استفاده از کنترل کننده های حافظه در طراحی پردازنده ها و حافظه به یک استاندارد تبدیل شده.سیستم های سطح بالا اغلب مقداری حافظه نهان در کنترل کننده حافظه خود دارند.نتیجه گیریحافظه از ابتدای محاسبات رایانه ای نقش مهمی داشته است. در کل ، استفاده اصلی از حافظه برای کمک به تکمیل یک عملیات بوده است ، چه با ذخیره سازی ورودی مورد نیاز برای شبیه سازی یا نگه داشتن نتایج ​​تولید شده در طول عملیات یا ذخیره نتایج یک عمل قبل از اینکه محاسبه شود.صنعت محاسبات و رایانه در آستانه دوره جدیدی است. فن آوری های نوین مانند 3D NAND و پارادایم های جدید برای حل انواع مسائل، با هزینه و صرفه جویی در مصرف انرژی ادغام می شوند. به طور واضح حافظه در این دوره حتی بیش از گذشته نقش خواهد داشت.بر گرفته از: Evolution of Memory Architecture by Ravi Nair </description><category>علی هاشمی</category><author>علی هاشمی</author><pubDate>Fri, 18 Dec 2020 17:36:50 +0330</pubDate></item></channel></rss>