همه چیز در مورد حافظه ها و سیستم های ان

ساخت وبلاگ
به نام حق و میزان حق

[Only registered and activated users can see links. ]

حافظه ها طبق این دسته بندی بر اساس شیوه ادرس دهی ساختمان انها به چند خانواده تقسیم می شوند
دو شاخه مهم که از هم جدا می شوند یکی serial access memory
و دیگری که معروف هست خانواده random access memory هست

[Only registered and activated users can see links. ]

حافظه های دسترسی سریال به ادرسی دهی نیاز ندارند که شامل ریجستر های درون ALU ها می باشد
و این دسته شیوه ارائه یکسان و بدون تغییر نوبت و خطی اطلاعات را دارند
در ریجستر ها از flip flop استفاده می شود

خانواده حافظه دسترسی تصادفی برای ذخیره و دسته بندی حجم اطلاعات زیاد با ترتیب متفاوت ارائه اطلاعات هست
این حافظه ها دارای مدار ادرس دهی مکان اطلاعات حافظه هستند مانند مالتی پلکسر
در این قسمت با توجه به پایداری اطلاعات با قطع شدن برق به دو قسمت تقسیم می شوند
حافظه های غیر فرار همانند rom ها و حافظه های ssd که از nand ها ساخته شده و فلش مموری مدل بهینه و کم سرعت تر nand هست
و حافظه های فرار با دسترسی تصادفی که شامل dram و sram می شود
تنها تفاوت بین dram و sram در ساختمان سلول های حافظه ان هست که قیمت و سرعت متفاوتی دارند
به دلیل اینکه در حجم انبوه flip flop ها خیلی پر هزینه و حجیم می شوند از انها استفاده نمی شود

سلول های حافظه با هم ردیف هایی مناسب با بیت اطلاعات ورودی می سازند مثلا یک حافظه 64 بیتی یا پر کردن دو ردیف برای 128 بیتی
و این ردیف ها بر روی هم ستون هایی می سازند که هر کدام شماره ای برای متمایز کردن و ادرس دهی ردیف ها دارد به این شماره ها tag می گویند
ریجستر ها ضرفیت ان اندازه پهنای باند است و برخلاف ان Ram ها ستون ها اطلاعات و حجم بیشتر از پهنای باند دارند و انتخواب بین ستون های ان

[Only registered and activated users can see links. ]
Static random access memory

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

Dynamic random access memory

مدل داینامیک در هر سلول به جای ترانزیستور از خازن استفاده می کند
و فشردگی و حجم کمتر و در نتیجه قیمت و سرعت کمتری دارد
طراحی و پیاده سازی مدار این حافظه مشکل تر و پیچیده تر هست
برای حفظ و از دست نرفتن اطلاعات درون هر خازن لازم است که طبق برنامه زمانی تمام خازن ها جریان دوباره و تازه سازی انجام بگیرند
اگر این عملکرد انجام نشود اطلاعات درون خازن ها پاک می شوند و شارژ ان خالی می گردد
در این مدت نمی توان اطلاعات را خوانده یا نوشتن کرد
هرچه فشردگی و ضرفیت حافظه بیشتر شود زمان بیشتری برای تازه سازی کلی خازن ها می برد در نتیجه به ان افزایش تاخیز یا CL حافظه dram می گویند

Joint Electron Devices Engineering Council (JEDEC)
اجتماع شورای مهندسی قطعات الکترونیکی ، استاندارد های dram و تاخیر انها را تایین میکند

SDRAM (synchronous DRAM)
این رم ها از نظر ساختمان هیچ فرقی با dram ندارند و فقط به جای استفاده از نانو ثانیه برای تاخیر از mhz برای هماهنگی با سرعت پردازنده استفاده می شود
GDDR نوعی SDRAM هست که به جای سرعت سریالی بالا از موازات و اتصال های موازی بیشتر با مصرف کمتر استفاده می کند

[Only registered and activated users can see links. ]

همان طور که در تصویر می بینید در زمانی که سرعت dram با سرعت پردازنده یکی بوده است
کش اصلا وجود نداشته است اما با افزایش و چندین برابر شدن سرعت پردازنده به dram از sram برای کش استفاده کرده اند

[Only registered and activated users can see links. ]

همانند تصویر هر قسمت از کش ادرسی و tag از رم را دارد که نشان دهند از وجود ان قسمت از حافظه در رم هست
شیوه دسترسی مستقیم که به صورت خطی و با دقت بالا تمام اطلاعات را به قطعه مخصوص اش از کش مرتبط می کند
هرچقدر قطعات ادرس دهی دقیق کش افزایش پیدا کند سرعت چون به صورت خطی است کاهش و اندازه کش افزایش پیدا میکند
در اطلاعات و برنامه های واقعی احتمال اینکه tag و بلوک بعدی توسط پردازنده استفاده شود خیلی بالاست

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

[Only registered and activated users can see links. ]

این یک نمونه واقعی از مدلی از کش پردازنده اینتل هست

[Only registered and activated users can see links. ]

راحت ترین شروع برای لیتوگرافی و پیشرفت های دیگر ورود به ساخت حافظه رم و ssd هست
همانطور که اینتل ابتدا سازنده رم بود و کشور و شرکت های دیگر در این زمینه

Coherence
امروزه بخشی خیلی زیاد و قابل توجهی از حجم پردازنده ها توسط کش اشغال می شود که سطوح و مراحل مختلفی دارد
دلیل اولیه کش فقط فاصله زیاد بین سرعت پردازنده و رم بود
اما با پیدایش پردازنده های چند هسته ای و یا تغییرات دیگر و وجود کش باعث ناپیوستگی اطلاعات بین کش ها می شود
مثلا اطلاعات یکسانی که از رم توسط کش در هر دو هسته بارگزاری می شود توسط یکی از هسته ها ویرایش می شود
اما هسته دیگر فقط نتایج اولیه و تاریخ گذشته کش را دارد و به نتیجه کش هسته دیگر دسترسی ندارد و این باعث مشکل می شود
یا مثلا کشی برای اطلاعات ورودی سخت افزاری IO وجود دارد که باید با کش پردازنده هماهنگ باشد
مبحث coherence و پیوستگی اطلاعات در سیستم های که اطلاعات کش تغییر میکند یکی از پیچیده ترین و پرهزینه ترین و خیلی تاثیر گزار
در کنار توجه به سرعت اجرای هسته ها و کش ها هست
به تصاویر دقت کنید

[Only registered and activated users can see links. ]

تمام مدل های coherence تنها به دو دسته و مدل اصلی تقسیم می شوند که هر کدام حالت های مختلفی دارند

Write through
مدلی هست که کش های جداگانه یک BUS مشترک برای ارتباط با خودشان دارند و هر کدام یک ارتباط جدا گانه با کش اختصاصی یا خود هسته دارند
دسترسی خواندن و نوشتن اطلاعات مجزا به این مدل با توجه به ارتباط خود کش های جداگانه به هسته ها می باشند و بین تمام کش های جداگانه پخش شده است
و دو حالت برای اطلاعات در هر قسمت حافظه دارد . حالت معتبر و غیر معتبر
وقتی که اطلاعات در یکی از کش های متصل به هم تغییر یافت از گذر گاه BUS پیغام به تمام کش های اختصاصی هسته ها ارسال میشود
که در صورت وجود این اطلاعات انها دیگر معتبر نیستند و هسته ها و ... باید صبر کنند تا اطلاعات جدید برای انها ارسال شود .
و در این قسمت تنها فقط یک ارسال تمام BUS مشترک بین کش ها را مشغول می کند

در واقع هدف coherence این است که در حالت اطلاعات جداگانه هیچ فشار و کاهش سرعتی برای ارتباط اطلاعات با هسته ها نباشد
و فقط در صورت مشترک بودن اطلاعات و تغییر یافتن ان تاخیر مناسب برای اصلاح ان صورت گیرد

[Only registered and activated users can see links. ]
[Only registered and activated users can see links. ]
[Only registered and activated users can see links. ]

Write back
برخلاف مدل قبلی از یک گذرگاه مشترک و جداگانه بودن قسمت های اطلاعات و پخش بودن ان را ندارد
یکی از دلایل برتری این مدل نسبت به قبلی پهنای باند قوی تر ان با هسته ها هست که در سرعت دسترسی به اطلاعات تاثیر دارد.
یعنی برخلاف مدل قبلی گذرگاه انتقال اطلاعات چه متفاوت و چه مشترک یکی هست به خاطر روی هم بودن
و احتیاجی مثلا به معطل شدن گذرگاه مشترک برای نوشتن ندارد
و فقط گذرگاه جانبی برای علامت گزاری اطلاعات بین مراحل روی هم دارد

و دیگر اینکه به خاطر چند مرحله ای بودن می تواند درخواست های بررسی برای اطلاعات غیر یکسان برای هسته ها را به مراحل پایین تر ارجاع دهد
اما نسبت به مدل قبلی دستورات و protocol پیچیده دارد

[Only registered and activated users can see links. ]

یک تصویر از write back یعنی نوشتن به عقب مدل سه مرحله ای MSI
M یعنی ویرایش شده یا کش مخصوص پردازنده
S یعنی مشترک شده و کش اشتراکی بین هسته ها
I یعنی غیر معتبر و یا اطلاعات الوده
تمام اطلاعات M درون S و I تکراری هستند فقط زمان و اعتبار انها فرق میکند

مدل های دیگری از write back وجود دارد که چهار مرحله ای هست مثل MESI یا مدل DRAGON و غیر ستونی
در این تصاویر تاخیر و بازدهی بین این دو مدل را ببینید
مثلا ببینید که مدل write back تاخیر ناشی از گذرگاه را ندارد و اصلا همچین قسمتی را ندارد

[Only registered and activated users can see links. ]
[Only registered and activated users can see links. ]

توجه کنید که کش سطح اول یا دوم یا سوم بودن به هیچ وجه نشان دهند نوع coherence ان نیست

Coherence در گرافیک ها
در هر CU یا SM به خاطر در کنار هم بودن اطلاعات یا عدم تکرار یا قفل بودن با وجود اینکه مراحل و نخ های زیادی دارد
تمام CU یک هسته با کش L1 به حساب می اید
تغییرات اطلاعات و هماهنگی انها با کش L2 انجام می شود

[Only registered and activated users can see links. ]

با مدل write through و چند کش چداگانه با گذرگاه مشترک بین انها و دسترسی به کش L1 یکسان برای تمام انها
وجود کش سطح اول برای هر cu سرعت اجرای پردازش ها را 85 درصد بهبود می دهد
اما در صورتی که بخواهند یک پردازش بین چند cu را انجام دهند در گرافیک های قدیمی مجبور بودنند کش سطح اول را خاموش کنند.
وجود سیستم مناسب coherence خیلی به سرعت هر cu کمک می کند
اما برای پردازش مستقل cu تاخیر می اورد که میتوان coherence را غیر فعال کرد
اما مشکل در گرافیک ها با اطلاعات زیاد فشار و ترافیک زیاد برای غیر معتبر کردن اطلاعات هست
مدل write back خیلی غیر عملی و حجیم و پر مصرف هست

مدل های fixed یا اختصاصی از write throgh برای اطلاعات گرافیک وجود دارد که به ان GPU VI می گویند
سیستم جدید و خیلی بهینه و کم مصرف و کم حجم که به دسته بندی اطلاعات خیلی کمک می کند
برای گرافیک های اینده مدل temporal coherence هست
که با توجه به ساختار اطلاعات گرافیک ها هیچ احتیاجی به ارسال غیر معتبر کردن اطلاعات نیست
و خودشان در زمان مشخصی غیر معتبر می شوند که ترافیک ارسال و مصرف و اندازه coherence را خیلی کاهش میدهد
طبق تصویر C1 هسته اول یا CU اول و C2 دومی است DIR گذرگاه بین انها

[Only registered and activated users can see links. ]

مرجع اورکلاک...
ما را در سایت مرجع اورکلاک دنبال می کنید

برچسب : نویسنده : استخدام کار external بازدید : 229 تاريخ : سه شنبه 10 اسفند 1395 ساعت: 14:43