עבור לתוכן

שקילות תדר-CL בזכרונות

Featured Replies

פורסם
  • מחבר

בדיוק.

הבעיה היא רק כאמור שהחישובים מראים לפי זה ש667 CL4 יותר מהיר מ-800 CL5 (במעבר ל-ns) מה שלא מתאים למציאות. ואני מנסה להבין למה.

פורסם

מבחינה פיסית הזיכרונות שונים...מה שלא לקחת בחשבון בחישובים..

למרות שלפי החישוב (ns) זיכרון 667 בCL4 "שווה ביצועים" ל800 CL5 (מבחינת ns) אך פיסית המצב שונה...

זה כמו לקחת שני רכבים שהמהירות המקסימלית שלהם זהה אך התאוצה לא....

זה דוגמא כללית... ;D

פורסם

אם תקח את התזמונים ונהפוך אותם לננו שניות ותעשה את החישוב של כמה זמן לוקחת כל תרנזאקציה תגלה שה DDR800 עם CL5 יותר מהיר מ DDR667 עם CL4 . הסיבה לכך היא שהDDR מכריח אותך לעבוד בbursts באורך מסוים שהוא חזקה של 2. לרוב זה 4 או 8 . אם נקח מקרה פשוט שהשורה (ROW) כבר במצב ACTIVE כל מה שצריך לעשות זה לבחור עמודה עם ה CAS ולעשות BURST של 4 :

במקרה של DDR800 ה CL הוא 5 ו נגיד שהאורך של ה burst הוא 4 . אורך התרנזקציה היא 5+ 4*0.5 = 7 שעונים של = 17.5 ננו שניות (השעון= 400MHZ)

במקרה של DDR667 עם CL 4 באותם תנאים אורך התרנזקציה היא 4 + 4* 0.5 = 6 שעונים = 18 ננו שניות (השעון= 333MHZ )

במקרים של BURST של 8 ה800MHZ מנצח באופן יותר קיצוני. אורך התרנזקציה הוא 9 שעונים = 22.5 ננו. במקרה של DDR667 האורך הוא 8 שעונים שזה 24 ננו . (תיקון טעות זה לא כלכך קיצוני אבל עדיין DDR800 יותר מהיר ב 6% מ DDR667 )

בכל SDRAM משלמים את מחיר התזמונים ואז כדאי לעשות BURST ארוך כדי שהתמורה תהיה גבוהה יותר. התזמונים בשעונים עולים ככל שהתדר עולה בעיקר בגלל הקבלים ששומרים את המידע שלא יכולים לעבוד יותר מהר ( הזמן בננו שניות נשער קבוע) אבל הממשק של הDDR כן מסוגל לעבוד יותר מהר אז כל הזמן השעונים עולים .

פורסם
  • מחבר

אה, הבנתי, לא הייתי מודע לעבודה בצורה הזאת ב-burst.

חשבתי שכל פעם שקוראים נתון אתה מעלה ומוריד CAS ומחכה כל פעם את ה-CL מחדש. אבל ב-burst אם כן אתה בעצם עושה את זה פעם אחת ואז במשך מספר מחזורים מקבל נתונים כל חצי מחזור שעון- שזה כמו CL0.5 (רק שזה לא CL) ואז אם תגדיל את התדר כבר לא תעמוד בתזמונים.

תודה על התשובה.

מה שכן ההגבלה שאתה מציין שבגללה צריך להעלות CL ככל שמגדילים תדר היא די בעייתית. בעצם לא מצליחים לשפר את זמן התגובה הבסיסי של קריאה מהזכרון, לא משהו.. :P

פורסם

היתה לי פשלה בהודעה לפני אבל עדין DDR800 יותר מהיר. תראה את DDR3 עם ה CL של 7 8 ו 9 . הם עדיין יותר מהירים מDDR2 בתדר נמוך יותר בגלל שהם עושים bursts. ההתקדמות הטכנולוגית היא בעיקר העלאת התדר והורדת המתח וצריכת החשמל.

בגלל שDDR מכריח אותך לעבוד ב BURST (אתה לא חייב לעשות read modify write בגלל ה DQM ) לא כדאי לך בכלל לעשות קריאות יחידות ובפועל בגלל שרוב המערכות שמחוברת ל DDR עובדות עם CACHE או שיש להם DMA שיודע לעשות BURST (במקרים של DSP למשל) תמיד אתה קורא/כותב כמות גדולה של מידע. בגלל ה MMU אתה לא צריך להחליף עמודים כל הזמן כי הוא מתרגם לך כתובות בזמן העבודה (הכתובת הפיזית לא חיבת להיות זהה הלוגית). יש לDDR גם הרבה בנקים שאומר שכל אחד יכול להיות פתוח לעמוד אחר. שני בנקי DIMM שונים נותנים לך גם אפשרות לעשות שני קריאות /כתיבות (אם יש לך קווי control נפרדים)במקביל שמקזז לך את ה תיזמונים. עם DUAL CHANNEL אתה יכול גם להכפיל את כמות המידע שאתה מעביר פי שתיים באותו זמן.

היתרון העיקרי של DDR הוא המחיר שלו והנפח שלו. הוא עדיין קצת איטי אבל האלטרנטיבות הרבה יותר יקרות.

פורסם

יש עוד מספר שינוים בDDR3 כגון prefetch buffer של 8 ביט (בDDR2 היה "רק" 4)...וכל מיני שיפורים בארכיטקטורה שתורמים לשיפור הביצועים..

פורסם

בגלל ה prefetch של ה8 ביט צריך לעשות burst של 8 מינימום אבל אפשר לעשות burst של 4 עם הפונקציה המיוחדת שנקראת burst chop . אני קראתי שהגדלת ה prefetch buffer מורידה את ה תדר הפנימי של החיבור לזיכרון הפיזי. בגלל שהמידע מגיע בצורה מקבילית לא צריך תדר גבוה בשביל להביא אותו מהזיכרון. זה כנראה עוזר לו לחסוך אנרגיה.

השימוש במידע מקבילי בשביל להוריד את קצב השעון נעשה גם באפליקציות תקשורת כמו ETHERNET . החיבור בין המידע הדיגיטאלי לרכיב אנלוגי (PHY ) נעשה לרוב בחיבור MII שהוא חיבור מקבילי של 4 ביט לכל כיוון וככה השעון שהוא צריך הוא 25Mhz ולא 100Mhz . יש עוד שני חיבורים דומים השינוי היחיד הוא במספר הביטים שמחוברים ל RMII שנקרא גם reduced MII יש שני ביטים ול GMII שמשמש לgigabit ethernet יש חיבור של 8 ביט ושעון של 150MHz (לא חקרתי לעומק את עניין השעון).

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים