מעבדים מודרניים פועלים מהר להפליא; הם יכולים לעלות משמעותית על זיכרון ה-RAM של המערכת. חוסר איזון מהירות זה בין המעבד והזיכרון יגרום למעבד שלך לשבת לעתים קרובות במצב לא פעיל, וממתין לשליחת נתונים אליו כדי שיוכל להמשיך להפעיל תהליך. כדי למנוע את זה לקרות, לאפשר למעבדים להמשיך לרוץ מהר יותר ויותר, נעשה שימוש ב-Cache של CPU.
כיצד מטמון מעבד מאיץ מעבד?
מטמון ה-CPU מתוכנן להיות מהיר ככל האפשר, ולאחר מכן לשמור נתונים שה-CPU מבקש. למטמון ה-CPU יש אופטימיזציה למהירות שלו בשלוש דרכים: חביון, רוחב פס וקרבה. מטמון ה-CPU פועל בהשהיות נמוכות מאוד, ומצמצם את משך הזמן שלוקח להחזיר תוצאה. לדוגמה, ל-Intel i9-9900k יש חביון מטמון של 0.8, 2.4 ו-11.1 ננו-שניות עבור מטמון L1, L2 ו-L3 בהתאמה. לשם השוואה, זמן ההשהיה של זיכרון RAM מודרני מהיר הוא בסדר גודל של 14 ננו-שניות.
טיפ: רמות המטמון יוסברו בפירוט רב יותר מאוחר יותר, אבל במילים פשוטות, השכבות התחתונות של המטמון הן מהירות יותר אך יקרות יותר ולכן יש להן קיבולות נמוכות יותר. ננו-שנייה היא מיליארדית השנייה, כך שהשהייה של 0.8 שניות פירושה שלוקח פחות ממיליארדית השנייה להחזיר תוצאה.
מבחינת רוחב הפס, מטמון ה-CPU מציע שיפורים משמעותיים בביצועים בהשוואה לאחסון וזיכרון RAM מסורתיים. מהירויות הקריאה של מטמון L1 ו-L3 יכולות להגיע לשיא של 2.3 TB/s ו-370 GB/s בהתאמה, בעוד שרוחב הפס של זיכרון RAM הוא בדרך כלל סביב 40 GB/s. רוחב הפס המוגדל הזה אומר שהמטמון של המעבד יכול להעביר נתונים למעבד הרבה יותר מהר ממה ש-RAM יכול.
כדי להשיג את המהירויות המקסימליות האפשריות, מטמון ה-CPU מובנה למעשה בסיליקון של ה-CPU עצמו. זה ממזער את המרחק שכל אותות חשמליים צריכים לעבור, ולכן שומר על זמן ההשהיה נמוך ככל האפשר. לדוגמה, כאשר המטמון L3 הועבר לראשונה מלוח האם למות המעבד, המעבד של אז (Pentium 4 EE) הצליח להשיג שיפור ביצועים של 10-20%.
ארכיטקטורת מטמון המעבד
מעבדים מודרניים משתמשים בדרך כלל בשלוש שכבות של מטמון מעבד שכותרתו L1-3, כאשר מטמונים עם מספר נמוך יותר קרובים יותר לליבות המעבד, מהירים יותר ויקרים יותר. לכל ליבת מעבד בודדת במעבד מרובה ליבות יש מטמון L1 משלה. זה בדרך כלל מפוצל לשני חלקים, L1I ו-L1D. ה-L1I משמש לשמירה במטמון של הוראות עבור ה-CPU בעוד L1D משמש לשמירה במטמון של הנתונים שעליהם יש לבצע הוראות אלו.
לכל ליבת מעבד יש בדרך כלל גם מטמון L2 משלה במעבד מודרני. מטמון L2 גדול ואיטי יותר מהמטמון L1 ומשמש בעיקר לאחסון נתונים שאחרת לא היו מתאימים למטמון L2. על ידי קיום מטמון L2 ייעודי לכל ליבה, נמנע מחלוקת מטמון. מחלוקת מטמון היא המקום שבו ליבות שונות נלחמות כדי לתבוע שטח מטמון עבור עומסי העבודה שלהן, מה שעלול להוביל לניקוי נתונים חשובים מהמטמון.
מטמון L3 משותף בדרך כלל בין כל ליבות ה-CPU של המעבד. שוב, מטמון L3 איטי יותר ממטמון L2 אך הוא זול וגדול יותר. על ידי מתן מטמון משותף ניתן להפחית את כמות הנתונים שישוכפלו ברמות נמוכות יותר של מטמון לכל ליבה.
טיפ: כדוגמה, בגדלי מטמון, ל-i9-9900K של אינטל יש מטמון 64KB L1 ו-256KB L2 מטמון לכל ליבה (בסך הכל 512KB L1 ו-2MB L2), יש לו גם 16MB L3 מטמון משותף.
כיצד משתמשים במטמון המעבד?
כל הרמות של מטמון ה-CPU משמשות להאצת ביצועי המעבד על ידי שמירה במטמון מ-RAM. כאשר מעבד מבקש נתונים, הוא בדרך כלל מחפש דרך שכבות המטמון שלו תחילה בניסיון להשיג את הנתונים מהר ככל האפשר. אם הנתונים נמצאו בהיטת מטמון, המעבד יכול להמשיך בעיבוד שלו. אם הנתונים לא נמצאים במטמון, במה שנקרא פספוס מטמון, אז המעבד צריך לבדוק את זיכרון ה-RAM, ולאחר מכן את הכונן הקשיח אם גם הנתונים אינם שם. השכבות המהירות יותר נבדקות תמיד קודם לביצועים מקסימליים.
כדי לעזור למעבד להחזיק את הנתונים הדרושים לו במטמון כאשר הוא זקוק להם, המטמון מנסה להקדים את הנתונים שהמעבד עשוי להזדקק לו בשלב הבא. לדוגמה, אם ה-CPU ביקש כמה נתונים עבור תמונה שהוא מעבד, ייתכן שהמטמון ינסה לשמור יותר מנתוני התמונה במטמון מראש כדי שניתן יהיה להזין אותם למעבד במהירות האפשרית.