מדריך לימודי - SDRAM

בקר ה SDRAM

הבקר הוא החולייה המקשרת בין ה SDRAM לבין המשתמש (Host) המבקש לקרוא או לכתוב ל SDRAM.

בדרך כלל הוא ממומש בקוד כמכונת מצבים. הבקר מוכרח לעקוב אחר ה SDRAM במטרה לטפל בבקשות המשתמש, המעקב כולל :


א. שורה נוכחית המופעלת בבנק ב SDRAM.

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

ג. המצב הנוכחי של ה SDRAM (בתהליכי איתחול, ממתין להגדרות מצב, מרענן שורה .....)


כל בקשה של המשתמש מתקבלת על-ידי הבקר. הבקר קובע האם ה SDRAM יכול כעת לטפל בבקשה ופועל בהתאם. הבקר מתרגם כל בקשה לפקודות הדרושות כדי שהSDRAM hypk בבקשה ושולח את אותות הבקרה המתאימים, הבקר ממתין במידת הצורך בין פקודות למספר המחזורים הדרוש.

הבקר מחובר למשתמש ול SDRAM באותות הבאים :


טיפול הבקר בכתיבה ללא Pipeline

דוגמה לבקשת כתיבה בה השורה והבנק כבר מופעלים וה SDRAM לא מטפל בבקשה קודמת.

מחזור 1 : המשתמש שולח לבקר אות WR היות שמדובר בבקשת כתיבה, את הכתובת הכוללת שורה וטור ב Haddr ואת המידע לכתיבה ב Hdin.

מחזור 2 : הבקר שולח ל SDRAM את הכתובת ב Saddr, את המידע ב Sdata ואת אותות הבקרה הדרושים לביצוע כתיבה  (CS='0' RAS='1' CAS='0',WE='0' ו A10  הקובע האם יבוצע precharge או לא)

היות שחלקו של הבקר בכתיבה הסתיים הוא שולח אות Done למשתמש המבשר לו שהפקודה הועברה בהצלחה.

מחזורים 3-5 :  ה SDRAM מקבל את פקודת הכתיבה וכותב את המידע.


אם הנתונים של הבקר היו מראים שהשורה הפעילה בבנק שונה מזו שהמשתמש ביקש , הבקר היא שולח פקודת Precharge, ממתין מספר המחזורים הנדרש לסיומה, שולח פקודת Activate מחכה שנית, ולאחר מכן מתחיל את תהליך הכתיבה משלב 1.

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




טיפול הבקר בקריאה ללא Pipeline

דוגמה לבקשת קריאה בה השורה והבנק כבר מופעלים וה SDRAM לא מטפל בבקשה קודמת.

מחזור 1 : המשתמש שולח לבקר אות RDהיות שמדובר בבקשת קריאה ואת הכתובת הכוללת שורה וטור ב Haddr

מחזור 2 : הבקר שולח ל SDRAM את הכתובת ב Saddr ואת אותות הבקרה הדרושים לביצוע קריאה(ראה בעמוד המידע הטכני)

מחזור 3 :  ה SDRAM מקבל את פקודת הקריאה ומתחיל בתהליך הקריאה.

מחזור 4 :  ה SDRAM ממתין לתוצאות הקריאה.

מחזור 5 :  המידע מה SDRAM מגיע לבקר ב Sdata.

מחזור 6 :  הבקר שולח את המידע למשתמש ב Hdout ואות המודיע לו שהקריאה הושלמה והמידע מוכן (אות Done).

אם המשתמש לא משנה את אות RD ל '0'  במחזור השעון הבא תחל קריאה נוספת.

אם הנתונים של הבקר היו מראים שהשורה הפעילה בבנק שונה מזו שהמשתמש ביקש , הבקר היא שולח פקודת Precharge, ממתין מספר המחזורים הנדרש לסיומה, שולח פקודת Activate מחכה שנית, ולאחר מכן מתחיל את תהליך הכתיבה משלב 1.

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

היות שבזמן זה לא מתקבל Done המשתמש אמור לשלוח שנית בקשת קריאה.


טיפול הבקר בכתיבה וקריאה עם  Pipeline

כפי שצויין קודם לכן ה SDRAM תומך ב Pipelining ועל-כן אם הבקר מתוכנת לתמוך ב Pipeline ניתן  לשלוח בקשות קריאה או כתיבה עוקבות בצורה הבאה :


דיאגרמות הזמן נלקחו מה Application note של Xess ל Xsa SDRAM.



בנוסף לתרגום בקשות המשתמש הבקר מטפל גם ברענון של ה SDRAM על ידי שליחת פקודות רענון במרווחים קבועים מראש 

ובאתחולו של ה SDRAM כאשר הוא מופעל , אתחול הכולל ביצוע Precharge וקביעת מצב עבודה ( ראה מידע טכני למצבי העבודה האפשריים).


לאחר הקריאה מהם ה SDRAM והבקר וכיצד הם עובדים, אתם יכולים לראות כיצד הכול מתחבר בסימולצייה האינטרקטיבית, הסימולצייה מבוססת על קוד הבקר ל XSA SDRAM אשר מסופק על ידי היצרנים (Xess)  באתר שלהם.


This free website was made using Yola.

No HTML skills required. Build your website in minutes.

Go to www.yola.com and sign up today!

Make a free website with Yola