04-11-2006, 22:53
|
|
מנהל פורום חומרה
|
|
חבר מתאריך: 27.05.02
הודעות: 22,477
|
|
יש צורך בכלל ב Cache כלשהו כדי להקטין את הזמן שלוקח למעבד
להשיג מידע. בכל מחזור שעון המעבד אמור להוציא הוראה חדשה מהזיכרון, אם אין Cache זה אומר שכל מחזור שעון חייבים לגשת לזיכרון הראשי, מה זה אומר בעצם זה ביצועים נוראיים. אם משתמשים רק ב L1 Cache, ה Hit-Rate משתפר, אבל שימוש ב L2 Cache יכול להביא את ה Hit-Rate לשיעורים של 99 אחוז בערך, שזה מעולה מבחינתנו.
יש גישה שנקראת Inclusive Cache ויש Exclusive Cache. הראשונה אומרת שמה שיש ב L1 Cache יש ב L2 Cache, השניה אומרת ההיפך, ויש יתרונות לכאן ולכאן. אני לא יודע מה ממומש במעבדים היום, אבל לטעמי ה Inclusive פשוט יותר ואולי גם הטוב מביניהם.
ההיררכיה היא כזו:
המעבד ניגש דבר ראשון ל L1 Cache כל מחזור בשביל הוראה ואם ההוראה אומרת למעבד להוציא נתון, הוא ניגש שוב ל L1 Cache בשביל הנתון. אם המנגנון שמנהל את ה Cache מחזיר מה שנקרא Cache-Miss, המערכת מיידעת את המעבד על כך ואומרת לו לעשות מה שהוא צריך לעשות במקרה כזה (יכול להיות שהוא יעמוד במקום, יכול להיות שהוא ימשיך להוציא לפועל עוד הוראות, תלוי בארכיטקטורה), ובינתיים ניגשת ל L2 Cache לבדוק אם הנתון נמצא שם. אם לא, חייבים לגשת ל RAM.
כל זה באופן מאוד פשטני, אם נכנסים לעניין של Virtual Memory כל העסק נהיה הרבה יותר מסובך.
_____________________________________
The only certainty in life is that there are no certainties.
|