זיכרון מטמון




מטמון (באנגלית: cache) הוא רכיב לאחסון מידע שבו נשמרים נתונים כדי שניתן יהיה לאחזרם במהירות או בזול. מקורם של הנתונים הוא במאגר נתונים איטי יותר, או בחישוב יקר או מסובך.
פעולת המטמון:
המטמון מתווך בין לקוח המטמון (cache client), שזקוק לנתונים מסוימים, לבין מקורם. במצב שלפני שילוב המטמון במערכת, בכל פעם שהלקוח זקוק לנתון, הוא מאחזר אותו על פי כתובתו במקור, ונושא בעלות המלאה של גישה אליו. כאשר יש מטמון, מופנות בקשותיו של הלקוח למטמון, ולא ישירות למקור המידע. המטמון בודק אם הנתון המבוקש נמצא בידו אם כן, הוא מוחזר ללקוח בלא לערב את מקור המידע אם לא, הוא מאוחזר ממקור המידע ונשמר במטמון, כדי שבפעם הבאה שיבוקש על ידי הלקוח לא תידרש קריאתו מחדש.
בדרך כלל קיימת מגבלה על מספר הנתונים שיכול להכיל המטמון, משום שלצד מהירות הגישה הגבוהה שלו ביחס למקור, הוא על פי רוב יקר יותר במונחים של עלות ליחידת מידע. על כן חייב המטמון להתמודד עם מצב שבו בבואו לאחסן בתככיו נתון שזה עתה אוחזר ממקור המידע, הוא יצטרך קודם כל למחוק נתון אחר כדי לפנות לו מקום. במצב זה פועל המטמון לפי אלגוריתם אחד מכמה אפשריים, כדי ליישם את מדיניות ההחלפה שלו. שיטה נפוצה אחת, היא לבחור את הנתון שלא נדרש על ידי הלקוח מזה הזמן הרב ביותר (least recently used).
יעילותו של המטמון נמדדת ביחס שבין בקשות הלקוח שהוא מספק בעצמו, הנקראות פגיעות (cache hit), לכלל בקשות הלקוח. אלו שהוא ניגש בשבילן למקור נקראות החטאות (cache miss). ככל שיחס הפגיעה קרוב לאחת, כך גדלה יעילותו של המטמון. הסיבה שנעשה שימוש כה נרחב במטמונים השונים בעולם המחשבים, היא שבמקרים רבים קיים דפוס בגישת הלקוח לנתונים, שאותו ניתן לנצל כדי להתאים לו אלגוריתם מטמון שיבטיח יחס פגיעה גבוה. דפוס נפוץ אחד כזה נקרא עקרון המקומיות, לפיו לקוח שניגש זה עתה לכתובת מסוימת, סביר שייגש זמן קצר לאחר מכן לכתובות הסמוכות אליה.
כאשר הלקוח מבקש לכתוב נתון,המטמון נוהג לפי מדיניות הכתיבה שלו. יש והמטמון כותב את הנתון למקור המידע מייד (write through), אך הוא יכול גם להשהות את הכתיבה, עד שהנתון הספציפי ייזרק מהמטמון לטובת נתון אחר (write back). במצב שבו ישנם לקוחות נוספים שעשויים לכתוב את אותו נתון למקור המידע (שלא דרך המטמון, או דרך מופע אחר שלו), אנו אומרים כי העותק של המטמון עשוי להיות לא מעודכן או עבש (stale).
זיכרון מטמון של מעבד
ליחידת עיבוד המרכזית יש זיכרון מטמון המוטמע בה או קרוב אליה. זיכרון זה הוא זיכרון מחשב מהיר שקיבולתו קטנה, ותפקידו להאיץ את פעולות המעבד. הגישה של המעבד אליו היא הישירה והמהירה ביותר, אף יותר מן הזיכרון העיקרי של המחשב, ועל כן הוא מתווך ביעילות בין המעבד לבין הזיכרון.מעבדים מודרנים מכילים יותר מרמה אחת של זיכרון מטמון, אשר כל אחת מתאימה לחלק אחר של פעולת המעבד בהרצת תוכניות. לעתים מיוצרים מעבדים בגרסא שאינה כוללת את מלוא זיכרון המטמון או את חלקו. מעבדים אלה, כגון הסלרון של אינטל, זולים יותר מהמעבדים הכוללים את זיכרון המטמון בשלמותו, אך ביצועיהם נופלים בהרבה בהשוואה.
מכיוון שכיום עומד צוואר הבקבוק של ביצועי תוכנות במקרים רבים בגישה לזיכרון, ניתן לקבל מתוכנות ייעודיות (כדוגמת Val grind) נתונים על החטאות מטמון, שבאמצעותן ניתן לבצע אופטימיזציה לתוכנה.
זיכרון מטמון של דיסק קשיח
זיכרון המטמון של הדיסק הקשיח מאיץ את זמן הגישה הממוצע לנתונים על הדיסק. בזיכרון המטמון מוחזקים נתונים מהדיסק הקשיח שמערכת ההפעלה ניגשה אליהם או צפויה לגשת אליהם (לפי עקרון המקומיות). מאחר והגישה לדיסק עצמו איטית יותר בסדר גודל מגישה לזיכרון, כדאי ליצרני הדיסקים להכליל בדיסק עצמו כמות מסוימת של זיכרון מטמון, כדי להוריד את זמן הגישה הממוצע. גם אופי הקריאה מהמדיה המגנטית הוא כזה, שבדרך כלל בכל קריאה נקראים לא רק הנתונים שבוקשו, אלא גם נתונים אחרים, הסמוכים להם על הדיסק. נתונים אלה, אם כבר נקראו, כדאי לאחסן בזיכרון המטמון, למקרה שידרשו.
זיכרון מטמון של דפדפן
עיקרון דומה משמש גם את הדפדפן, אשר שומר על הדיסק הקשיח דפי אינטרנט מסוימים, מכיוון שהגישה לדיסק הקשיח מהירה מן הגישה לאינטרנט. מטמון הדפדפן הוא דוגמא מובהקת למידע שעשוי להיות עבש, כאשר אתרי האינטרנט המבוקשים מתעדכנים. על כן מאפשרים הדפדפנים, כפי שמאפשר פרוטוקול HTTP עצמו, למשתמש להגדיר מתי להשתמש במטמון, אם בכלל.
L1 cache :

זיכרון פנימי המותקן ומיוצר במעבד עצמו

L2 cache :

זיכרון חיצוני המותקן בכרטיס שבו מולחם ה-CPU


דירוג:  

הוסיפו ל Facebook Share on Twitter

הוספת תגובה / יצירת קשר עם איתן

שם מלא: *

אימייל: *
(האימייל לא יפורסם בשום מקום באתר)
כותרת: *
תוכן:
4 + 9 =