بررسي تاثير حالت سه کاناله حافظه بر کارايي
ارزيابي سرعت انتقال داده بين حافظه و كنترلكننده آن
براي يك ماژول حافظه پارامتري به نام MTTR تعريف شود كه سرنام عبارات
Maximum Theoretical Transfer Rate است. اين پارامتر حداكثر سرعت انتقال
داده بين حافظه و كنترلكننده آن (بر حسب مگابايت در ثانيه) است كه البته
كاملاً تئوري بوده و در عمل سرعت واقعي، به خاطر نبود امكان انتقال داده در
همه سيكلها، كمتر از اين مقدار است.
8 / تعداد بيت منتقل شده در هر سيكل ×تعداد دفعات انتقال داده در هر سيكل × فركانس واقعي حافظه = MTTR
تعداد بيت منتقل شده در هر سيكل × فركانس حالت دي دي ار = MTTR
توجه به اين نكته در اينجا ضروري است كه
در فناوري DDR ، داده در هر سيكل ساعت دوبار منتقل ميشود (يك بار در لبه
بالا رونده پالس و بار ديگر در لبه پايين رونده). بنابراين فركانس DDR دو
برابر فركانس واقعي ماژول حافظه است. مثلا سرعت واقعي يك ماژول DDR2-800
برابر 400 مگاهرتز است. به همين دليل فرمول اول يك پارامتر بيشتر از فرمول
دوم دارد.
در فرمول MTTR پارامتر بسيار مهم، تعداد بيت منتقل شده در هر
سيكل است. چون ارتباط بين حافظه و كنترلكننده از نوع موازي است، براي
انتقال هر بيت (در هر سيكل) يك سيم نياز داريم. پس ميتوان گفت تعداد خطوط
باس داده، تعداد بيت منتقل شده در هر سيكل را مشخص ميكند. در حافظههاي
فعلي اين مقدار برابر 64 است.
حافظههاي چندكاناله؛ افزايش كارايي سيستم
در
يك كنترلكننده حافظه معمولي، مقدار پارامتر تعداد بيت منتقل شده در هر
سيكل (در فرمول MTTR) برابر 64 است. يعني اين كنترلكننده از طريق يك كانال
داده با حافظههاي سيستم در ارتباط است. تصوير 2 يك كنترلكننده حافظه
مستقر در پردازنده را نشان ميدهد كه از طريق باس داده (سيمهاي D01-D64)
با حافظه سيستم در ارتباط است.
حال اگر بخواهيم سرعت و كارايي ارتباط حافظه و كنترلكننده را بالا ببريم
بدون آنكه در خود حافظه تغييري بوجود بياوريم، افزايش تعداد كانالهاي
ارتباطي بين حافظه و كنترلكننده بهترين راه است. كنترلكنندههاي
حافظهدوكاناله (Dual Channel) و سهكاناله (Tri channel يا Triple
Channel) به همين دليل بوجود آمدند. از آنجا كه سهكاناله فناوري جديدي است
و نسخه مكمل و پيشرفته دو كاناله محسوب ميشود، در اينجا قصد داريم به
معرفي ساختار و ويژگيهاي آن بپردازيم.
ابتدا شركت اينتل در
پردازندههاي Core i7 (سري 9xx با كد Bloomfield و Gulftown) كه در سوكت
LGA1366 قرار ميگيرند، كنترلكننده حافظه سهكاناله را ارائه كرد. در اين
روش ارتباط ماژولهاي حافظه و كنترلكننده، با سه كانال داده برقرار
ميشود. به عبارت بهتر ميتوان گفت به جاي يك باس داده، سه باس داده داريم
كه هر كدام 64 سيم دارند. در نتيجه تعداد بيت منتقل شده در هر سيكل برابر
192=3×64 خواهد شد. اين روش MTTR را نسبت به حالت تككاناله سه برابر
ميكند و كارايي ارتباط سيستم با حافظه را تا حد زيادي افزايش ميدهد.
تصوير 3 اين موضوع را نشان ميدهد.
حداكثر ظرفيت حافظه قابل پشتيباني توسط سيستم در حالت سه كاناله تفاوتي با
حالت معمولي يا دو كاناله ندارد. زيرا همانطور كه ميدانيد عامل
تعيينكننده ظرفيت مجاز حافظه در هر سيستم، تعداد خطوط باس آدرس است (در يك
سيستم با 32 سيم آدرس، حداكثر حافظه مجاز چهار گيگابايت خواهد بود.) اما
مسالهاي كه در حافظههاي چندكاناله بوجود ميآيد نحوه پر شدن سلولهاي
حافظه است. در حالت تككاناله، سلولهاي حافظه به صورت ترتيبي و پشت سر هم
پر ميشوند و زماني كه يك ماژول حافظه پر شد، دادهها در اولين خانه ماژول
بعدي قرار ميگيرند يعني اگر در سيستم دو ماژول حافظه كه هركدام يک
گيگابايت ظرفيت دارند نصب شده باشد، سلولهاي حافظه ماژول دوم از نظر فضاي
آدرس در انتهاي ماژول اول قرار ميگيرند. اما در حالت چندكاناله (در حالت
خاص، سهكاناله) با توجه به اينكه هر كانال داده به يك ماژول حافظه مجزا
متصل است و باس آدرس بين تمام ماژولهاي حافظه مشترك است، استفاده از روش
قبل كارايي سيستم را پايين ميآورد بنابراين از روشي به نام interleaving
استفاده ميشود. در اين روش اگر يك كنترلكننده حافظه سهكاناله و سه ماژول
مجزاي حافظه داشتهباشيم، سلولهاي همشماره ماژولهاي حافظه به ترتيب پر
ميشوند.
يعني ابتدا سلول اول هر سه ماژول پر ميشود، سپس سلول دوم هر
سه ماژول و اين روند تا آخر ادامه پيدا ميكند. تصوير 4 سه ماژول حافظه و
نحوه پر و خالي شدن آنها در روش interleaving را نشان ميدهد.
روشفعالسازي حالت سه كاناله (Triple Channel) در سيستم
براي اينكه بتوان از قابليت Triple Channel استفاده كرد، در ابتدا بايد
مادربورد و پردازنده اين قابليت را پشتيباني كنند. در چنين مادربوردهايي،
تعداد اسلاتهاي قرارگيري حافظه مضرب 3 است كه معمولاً هر گروه سهتايي از
آنها به يك رنگ خاص هستند. اين رنگ نشان دهنده ايناست كه براي فعال شدن
قابليت سهكاناله، بايد سه ماژول حافظه را در سه اسلات همرنگ قرار داد.
تصوير 5 يك مادربورد foxconn با چيپست X58 را نشان ميدهد كه قابليت
چندكاناله را پشتيباني ميكند. در مادربوردي مانند تصوير 5، فعالسازي
سهكانال حافظه كار سادهاي است. كافي است سه ماژول حافظه از نوع DDR3
(قابليت سه كاناله فقط براي اين حافظههاي ارائه شدهاست) با ظرفيت و سرعت
يكسان را روي اسلاتهاي همرنگ نصب كنيم. در اين صورت حالت سهكاناله فعال
شده و در زمان Boot، سيستم اين موضوع را اعلام ميكند.
البته كنترلكنندههاي سه كاناله ميتوانند در مدهاي ديگري (غير از سهكاناله) نيز فعاليت كنند. اگر فقط دو اسلات از سه اسلات حافظه يك مادربورد سهكاناله پر شود، در اين صورت اين دو ماژول حافظه در حالت دو كاناله (Dual Channel) كار خواهند كرد. همچنين اگر ماژولهاي همظرفيت در دسترس نباشد، ميتوان از حالت دوكاناله يا سهكاناله در مد Flex استفاده كرد. مد Flex همانطور كه از نام آن مشخص است، به يك كنترلكننده حافظه قابليت انعطاف ميدهد. در اين مد، ميتوان دو ( يا سه) ماژول غير همظرفيت را در اسلاتها نصب كرد. كنترلكننده حافظه مقدار مشترك بين ماژولها را به صورت دوكاناله (يا سهكاناله) استفاده ميكند و بقيه ظرفيت حافظهها به صورت تككاناله (Single Channel) استفاده ميشود. مثلاً اگر يك ماژول 512 مگابايتي و يك ماژول يک گيگابايتي داشتهباشيد، اگر آنها را روي اسلاتهاي همرنگ نصب كنيد، مقدار 512 مگابايت از هركدام از ماژولها به صورت دوكاناله استفاده ميشود و 512 مگابايت باقيمانده تككاناله خواهد شد.
ارزيابي بهبود كارايي كنترلكننده حافظه سهكاناله
با
توجه به افزايش 50 درصدي پهناي باند حافظه (MTTR) در حالت سهكاناله (نسبت
به دو كاناله) انتظار ميرود كه در عمل نيز تقريباً به همين اندازه سرعت
انتقال دادهها بين حافظه و كنترلكننده افزايش يافته باشد. اما تستهاي
انجام شده توسط سايت Tom’s hardware نتايج جالبتري را نشان ميدهند.
متخصصين اين سايت پهناي باند حافظهها را در سه حالت تككاناله، دوكاناله و
سهكاناله روي پردازنده Core i7 (كه كنترلكننده سه كاناله دارد)
اندازهگيري كردهاند و آن را با پهناي باند اندازهگيري شده در حالت
دوكاناله روي پردازندههاي Core 2 Extreme QX9770 و Phenom X4 9550 Black
Edition (كه كنترلكننده حافظه ذاتاً دو كانالهاست) ، مقايسه كردهاند.
نتايج بدست آمده را در جدول 6 ميتوانيد مشاهده كنيد.
مقايسه پهناي باند Read (نوشتن)حالت دوكاناله در دو پردازنده Core i7 و
Core 2 (كه هر دو از حافظه DDR3-1333 استفاده كردهاند) نشان ميدهد كه
خود كنترلكننده حافظه علاوه بر افزايش تعداد كانال، تغييرات مهم ديگري نيز
كردهاست. البته يكي از دلايل دو برابر بودن پهناي باند Read دو كاناله در
پردازنده Core i7 نسبت به Core 2 را ميتوان قرار گرفتن كنترلكننده حافظه
درون خود پردازنده در پردازندههاي Nehalem شركت اينتل دانست. مقايسه
نتايج بدست آمده پردازنده Core i7 در حالت سهكاناله با حالت دوكاناله نشان
ميدهد كه افزايش پهناي باند از آنچه كه در حالت تئوري محاسبه ميشود
بسيار كمتر است و حتي در مورد Write تغييري نشان نميدهد. شايد براي حل اين
موضوع بايد منتظر كنترلكننده حافظه با كارايي بالاتر باشيم.
اشاره: در
مورد پردازنده Phenom x4 بايد به اين موضوع توجه داشت كه پردازندههايي
که در اين تست مورد استفاده قرار گرفته است قابليت پشتيباني از حافظههاي
DDR2 را دارد.
سهكاناله كردن حافظهها را ميتوان در واقع راهي براي
بالابردن سرعت ارتباط حافظهها، از طريق زياد كردن تعداد راههاي ارتباطي
حافظه و سيستم و استفاده بيشتر از ماژولهاي حافظه بطور همزمان، دانست. با
توجه به افزايش مداوم سرعت حافظهها و ارائه شدن ماژولهاي DDR4 توسط بعضي
سازندگان حافظه، به نظر ميرسد در سمت مقابل نيز سازندگان كنترلكنندههاي
حافظه نيز بيكار نمينشينند و فناوري چهاركاناله (Quad Channel) را ارائه
خواهند كرد. در اين صورت بايد منتظر يك رابط 256 بيتي براي انتقال داده
باشيم كه همراه سرعت بالاي 2400 مگاهرتز (حداكثر 4200 مگاهرتز) حافظههاي
DDR4، پهناي باند بسيار زيادي را براي ما به ارمغان بياورد.