امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

زمانبندی یا تایمینگ در حافظه رم (RAM) چیست؟

در مقاله قبلی یک نکته تحت عنوان منظور از سرعت حافظه RAM چیست ؟ و چرا باید به آن توجه کنیم ؟ در توسینسو نوشته شده است که قبل از خواندن این مقاله ابتدا بهتر است انرا مطالعه کنید. به دلیل پارامتری تحت عنوان Timingدر حافظه RAM دو ماژول حافظه با نرخ انتقال داده های یکسان اما با میزان Timing متفاوت به سطح کارایی متفاوتی از هم میرسند. حالا سئوالی که پیش می آید این است که چه میشود اگر آن ها از یک clock rate یکسان پشتیبانی کنند ؟ برای پی بردن به این موضوع تا انتهای مقاله با من همراه باشید ...

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
منظور از Timing در حافظه RAM کامپیوتر چیست ؟ قسمت اول : مقدمه ای بر بحث Timing حافظه RAM کامپیوتر

در بحث Timing در حافظه RAM کامپیوتر پارامتری تحت عنوان CAS Latency که آنرا به طور اختصار CL نیز مینویسند و Access time نیز گفته میشود، وجود دارد که معروف ترین و پرکاربرد ترین پارامتر در میان سایر پارامتر های مربوط به Timing حافظه RAM میباشد پارامتر CL به ما میگوید که چند تا clock cycle باید توی حافظه RAM اتفاق بیفتد که دستور CPU یا پردازنده سیستم مبتنی بر فراخوانی داده ها روی حافظه RAM اجرا شود.

حافظه RAM ای با CL ای برابر با 9 به این معنی است که 9 تا چرخه Clock باید انجام شود تا حافظه RAM بتواند داده ها را در خود بارگزاری کند. یا به عبارت دیگر 9 تا چرخه Clock باید طی بشه تا حافظه RAM به دستور CPU پاسخ بده. حافظه RAM ای با CL ای برابر با 7 همانطور که الان دانستید با تاخیر 7 تا Clock cycle میتواند دستورات RAM را اجرا کند.

در این مثال با وجود اینکه اگر این دو حافظه RAM از یک نرخ انتقال داده استفاده کنند حافظه رم دوم (با CL7) سریعتر از حافظه رم اولی (با CL9) خواهد بود. همانطور که دریافتید هر چه مقدار Clock cycle یا CL کمتر باشد سرعت حافظه RAM بیشتر میشود که البته این به تنهایی تضمینی بر افزایش سرعت RAM نمیباشد بلکه پارامتر های دیگری نیز در این امر دخیل هستند. در تصویر فوق Timing حافظه RAM را که به شکل 24-8-8-8 است را مشاهده میکنید.

در حقیقت این اعداد به شکل CL-tRCD-tRP-tRAS-CMD میباشند. در میان این 5 پارامتر در بحث Timing همانطور که گفته شد پارامتر اول یا همان CL از محبوبیت بیشتری برخوردار است و پارامتر آخری یا همان CMD معمولاََ در RAM ها عنوان نمیشود و چندان مهم نیست، هر چند که در مطالب بعدی مختصری آنرا توضیح خواهیم داد. در زیر هر 5 پارامتر Timing را به صورت کوتاه معرفی میکنیم.


  • CL یا CAS Latency : همانطور که پیشتر نیز در این مطلب عنوان کردیم، مدت زمانی است که طول میکشد تا یک دستور به حافظه RAM فرستاده شود و حافظه RAM به آن پاسخ دهد.
  • tRCD یا RAS to CAS Delay : مدت زمانی است که طول میکشد تا یک لاین از حافظه RAM سیستم که حاوی سطر (RAS) و ستون (CAS) است (ماتریس) برای ذخیره سازی داده ها فعال سازی شوند.
  • tRP یا RAS Precharge : مدت زمانی است که طول میکشد تا دسترسی از یک لاین از داده ها در ماتریس حافظه RAM به یک لاین دیگر در حافظه برقرار شود.
  • tRAS یا Active to Precharge Delay : مدت زمانی است که حافظه RAM منتظر میماند تا دوباره ماتریس های خودش را برای عملیات خواندن و نوشتن آماده سازی کند.
  • CMD یا Command Rate : مدت زمانی است که Chip یا تراشه RAM فعال شود و اولین دستور را اجرا کند. همانطور که ذکر شد این پارامتر اغلب اوقات بیان نمیشود. این پارامتر معمولاََ مقداری برابر با T1 (یک Clock cycle) و یا T2 (دو Clock cycle) را دارد.


معمولاََ شما دو گزینه برای تعیین این Timing ها در کامپیوترتان دارید : یکی اینکه بصورت اتوماتیک اجازه دهید سیستم خودش این پارامتر ها و مقادیرش را تعیین کند و دیگری اینکه خودتان بصورت دستی این کار را انجام دهید و کارایی سیستم خود را بالا ببرید. توجه کنید که برخی از مادربورد ها به شما اجازه تغییر مقادیر Timing حافظه رم را نمیدهند همچنین برخی از مادربورد ها نمیتوانند با مقدیر Timing کم کار کنند و آنها ممکن است برای بالا بردن عملکرد و کارایی سیستم روی بیشترین مقدار Timing پیکربندی شده باشند.

منظور از Timing در حافظه RAM کامپیوتر چیست ؟ قسمت اول : مقدمه ای بر بحث Timing حافظه RAM کامپیوتر

زمانیکه حافظه RAM سیستم خود را Overclock میکنید شما ممکن است نیاز داشته باشید تا به منظور حفظ عملکرد عادی سیستم تان مقادیر Timing رم تان را افزایش دهید. اینجاست که بعضی چیز های جالب اتفاق می افتد. از آنجا که Timing رم خود را افزایش داده اید ممکن است کارایی حافظه RAM سیستم تان پایین بیاید حتی با وجود اینکه برای بیشترین نرخ Clock پیکربندی شده باشد.این به این دلیل است که بحث Delay در این جا مطرح میشود که پیشتر درباره آن در این مطلب صحبت کردیم. در ادامه هر یک از پارامتر های Timing حافظه RAM کامپیوتر را که پیشتر بطور مختصر آنها را معرفی کردیم زیر ذره بین میبریم.

معرفی پارامترهای CAS Latency

در مطلب قبل در خصوص Timing حافظه RAM و معرفی پارامتر های آن به صورت مختصر صحبت کردیم. حال در این نکته به صورت اختصاصی درباره پارامتر مهم CAS Latency صحبت میکنیم و آنرا زیر ذره بین میبریم. خب همانطور که در مطلب قبلی نیز ذکر کردیم پارامتر CAS Latency در بحث تایمینگ رم بهترین پارامتر حافظه RAM برای مشخص کردن سرعت RAM میباشد.

این پارامتر همانگونه که عنوان کردیم تعداد Clock cycle هایی را نشان میدهد که حافظه RAM باید طی کند تا دستورات CPU را اجرا کند یا داده ها را در حافظه بارگزاری کند. حافظه RAM ای با CL برابر 7 باید 7 بار (چرخه کلاک) تاخیر یا Delay میتواند دستورات CPU مبنی بر فراخوانی داده ها را اجرا کند. از این رو برای دو ماژول حافظه RAM با نرخ انتقال داده برابر آن یکی که مقدار CL کمتری دارد سرعت بیشتری در اجرای دستورات CPU دارد.

توجه کنید که در این مثال نرخ کلاک یا Clock rate واقعی همانی است که در حافظه RAM در حال اجراست. یعنی نیم برابر Cock rate ای که روی RAM علامت گزاری شده است. همانطور که حافظه های DDR2 ، DDR و DDR3 میتوانند دو داده را در واحد زمان در خود فراخوانی کنند از این رو در مثال ما حافظه های RAM ما با نرخ دوبرابر Clock خود در مجموع میتوانند کار کنند. در تصویر زیر میتوانید مشاهده کنید که چگونه پارامتر CAS Latency یا CL در Timing حافظه RAM عمل میکند. در زیر ما دو مثال زده ایم یکی برای CL7 و دیگری برای CL9 . دستور آبی رنگ دستور Read یا خواندن میباشد.


منظور از Timing در حافظه RAM کامپیوتر چیست ؟ قسمت دوم : معرفی پارامتر CAS Latency یا CL
حافظه RAM ای با CL=7 میتواند 22.2% در بهبود مشکل تاخیر یا Delay حافظه RAM به نسبت حافظه RAM ای با CL=9 تاثیر بگزارد (البته با در نظر گرفتن اینکه از Clock rate های یکسان استفاده میکنند). شما حتی میتوانید میزان تاخیر حافظه RAM را تا زمانیکه داده ها را در خود میتوانند بارگزاری کنند براحتی با فرمول زیر محاسبه کنید :

T = 1 / f

از این رو بازه زمانی هر clock cycle از حافظه رم DDR3-1333 که با فرکانس 1333MHz (در حقیقت 666.66MHZ) کار میکند برابر 1.5ns (یک و نیم نانو ثانیه) میباشد. نکته اینکه یک نانو ثانیه برابر 0.000000001 ثانیه میباشد. به خاطر داشته باشید که شما از clock rate واقعی که نصف clock rate نوشته شده روی RAM است برای این کار باید استفاده کنید بنابراین حافظه رم DDR3-1333 در هر Clock rate تاخیری در حدود 10.5 نانو ثانیه خواهد داشت اگر CL آن معادل 7 باشد و یا اگر CL آن معادل 9 باشد در هر Clock rate حدود 13.5 نانوثانیه تاخیر خواهد داشت. توجه کنید که حافظه های RAM از نوع DDR توانایی دو واحد داده را در هر Clock cycle دارند.

معرفی پارامتر tRCD

خب در مقدمه مبحث Timing حافظه RAM پارمتر tRCD یا RAS to CAS Delay را به طور مختصر معرفی کردیم. حالا در این نکته به طور اختصاصی درباره پارامتر tRCD صحبت میکنیم. همانطور که عنوان کردیم پارامتر tRCD بیانگر مدت زمانی است که طول میکشد تا یک لاین از حافظه RAM سیستم که حاوی سطر (RAS) و ستون (CAS) است (ماتریس) برای ذخیره سازی داده ها فعال سازی شوند.

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


منظور از Timing در حافظه RAM کامپیوتر چیست ؟ قسمت سوم : معرفی پارامتر tRCD یا RAS to CAS Delay


این فعال سازی توسط دو سیگنال به نام های RAS که اختصار یافته Row Address Strobe و سیگنال CAS که اختصار یافته Column Address Strobe میباشد انجام میشود. بدیهی است که هر چه مدت زمان دسترسی به بخش از ماتریس حافظه کمتر باشد در افزایش سرعت حافظه RAM ما تاثیر مستقیمی دارد، زیرا داده ها زودتر خوانده میشوند. مدت زمان این دسترسی با پارامتر tRCD یا RAS to CAS Delay مشخص میشود.

در تصویر فوق ما حافظه RAM ای که مقدار پارامتر tRCD آن برابر 3 میباشد را نشان داده ایم. بنابر آنچه که تاکنون گفتیم و در تصویر فوق نیز مشاهده میکنید مدت زمان بین دستور Active (فعال سازی سطر و ستون از ماتریس حافظه) و دستور Read و یا Write در این مثال برابر 3 چرخه کلاک یا Clock cycle میباشد.

درست همانند پارامتر CAS که در مطلب قبلی درباره آن صحبت کردیم پارامتر tRCD نیز با نرخ Clock واقعی (که نصف نرخ کلاک درج شده روی حافظه رم است) کار میکند. از این رو هر چه مقدار پارامتر tRCD کمتر باشد سرعت خواندن و نوشتن داده ها روی حافظه RAM نیز به طبع بالاتر میرود. ادامه درباره پارامتر tRP صحبت خواهیم کرد.

معرفی پارامتر tRP

تا اینجای کار در خصوص انواع پارامتر های Timing در حافظه RAM صحبت کردیم و در مقدمه مبحث به طور مختصر عنوان کردیم که پارامتر tRP مدت زمانی است که طول میکشد تا دسترسی از یک لاین از داده ها در ماتریس حافظه RAM به یک لاین دیگر در حافظه برقرار شود. حال در این نکته میخواهیم این پارامتر را بیشتر زیر ذره بین ببریم و تاثیرش را روی سرعت حافظه RAM مورد بررسی قرار دهیم. پس از جمع آوری داده ها از روی حافظه RAM دستوری به نام Precharge نیاز به فراخوانی دارد تا ردیفی از ماتریس حافظه را که اخیراََ مورد استفاده قرار میگرفته است بسته شود و ردیف جدیدی از ماتریس حافظه فعال سازی شود.

RAS Precharge time یا به اختصار tRP مدت زمانی است که طول میکشد تا دستور اجرا شود و آن ردیف از ماتریس حافظه به حالت فعال دربیاید. حتماََ از مطلب قبلی به یاد دارید که دستور Active یا فعالسازی، چرخه فرآیند خواندن و نوشتن روی حافظه RAM را آغاز میکند. در تصویر زیر مکانیزم کاری پارامتر tRP را در حافظه RAM ای با مقدار پارامتر tRP برابر 3 به وضوح مشاهده میکنید.


منظور از Timing در حافظه RAM کامپیوتر چیست ؟ قسمت چهارم : معرفی پارامتر tRP یا RAS Precharge


دقیقاََ مانند سایر پارامتر های Timing حافظه RAM که در مطالب قبلی درباره آن ها صحبت کردیم پارامتر tRP نیز با نرخ Clock واقعی (که نصف نرخ کلاک درج شده روی حافظه رم است) کار میکند. از این رو هر چه مقدار پارامتر tRP کمتر باشد سرعت خواندن و نوشتن داده ها روی حافظه RAM نیز به طبع بالاتر میرود. زیرا در واقع دستور Active زودتر صادر میشود. امیدوارم مورد توجه شما قرار بگیرد.

امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

امیرحسین کریم پور ، مدیر ارشد توسینسو ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت و سرویس های مربوطه ، سیستم عامل لینوکس و... ، سابقه کار با سازمان ها و شرکت های مختلف در زمینه سرویس های مایکروسافت در قالب پروژه ، مشاوره و آموزش. علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی

نظرات