ارزيابي سرعت انتقال داده بين حافظه و كنترلكننده آن
براي يك ماژول حافظه پارامتري به نام 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 را نشان ميدهد.
ممنون از آقای سبط بابت مطلب بسیار زیبا و کاربردی
آقای پناهی ای کاش این مطلب روی ماهنامه میرفت، واقعا عالی کار شده
از کاربر گرامی و کل مجموعه سخت افزار سپاسگذارم من عاشق مطالب اموزشی هستم دوباره سپاس