זיכרון מטמון – כל מה שרציתם לדעת

7 2,302

זיכרון מטמון (Cache Memory) הוא זיכרון האוגר מידע החיוני לחסכון בפעולות עיבוד וחישוב. קיימים אלגוריתמים ברמות שונות המתפעלים את זיכרון המטמון, בין אם מכניסים אליו את המידע או משתמשים בו. בנוסף לכך, תוכניות מחשב ואלגורימים הנעזרים בזיכרון מטמון, חוסכים חישובים במצבים מסוימים, מתבצעים במשך פחות זמן ומשפרים את זמן הריצה שלהם בפועל (בכפוף למצב) לעומת אלגוריתמים זהים (הפועלים על אותם נתונים) שלא עושם בו שימוש. זיכרון מטמון בא לידי ביטוי בתחום המחשבים ברמות שונות וביישומים שונים, ביניהם באלגוריתמים של תוכנה, תעבורת רשת, טעינת תוכנה.

דוגמאות לזיכרון מטמון בתחומי המיחשוב (Computing Field):

זיכרון מטמון של המעבד (Cache Memory Computer CPU)– למעבד המחשב יש זיכרון מטמון משלו שהוא זיכרון הנמצא ברמות שונות במבנה המעבד. קיימים עד שלוש רמות של זיכרון מטמון במעבד. שם זיכרון המטמון של המעבד נקבע על פי הרמה בה הוא נמצא ביחס לקרבה מיחידת העיבוד בתוך מבנה מעבד: זיכרון מטמון ברמה L1 הקרוב ביותר ליחידת העיבוד, L2, L3 (L מציינת LEVEL) הכי מרוחק. בנוסף, זיכרון מטמון מרמה L3 יכול להיות מובנה במעבד או קרוב מאוד אליו אך על לוח האם. זיכרון מטמון הוא זיכרון מהיר בהרבה (נכון להיום) מזיכרון הראשי של המחשב (RAM) והתדר בו הוא פועל קרוב מאוד לתדר המעבד (כך שהוא מגביל אותו הרבה פחות מזיכרון RAM, והמעבד פועל איתו במקביל). מעבר לכך, זיכרון מטמון של מעבד הוא יקר במיוחד, יקר עד מאוד, עד לכך שישנם מעבדים שנמכים עם רמות נמוכות של יזכרון זה לצורך חסכון במחירם, מעבדים אלה, כדוגמת מעבדי ה-CELERON של INTEL או ה-SEMPRON של AMD, שלא כוללים בדרך כלל זכרון מטמון ברמות L2 ו-L3, מהווים מעבדים פשוטים לשוק הביתי שאינו מחפש ביצועים גבוהים.

תוכניות רבות, כמו מערכות הפעלה, או תוכנות גרפיקה והצפנה עושות נעזרות בזיכרון המטמון של המעבד לצורך הפחתה בכמות החישובים של המעבד במידת האפשר. הן מאכסנות בזיכרון המעבד מידע אודות תוצאות של חישובים קודמים מסויימים על פי מדדי יעילות וכדאיות (על פי אלגוריתמים מתוחכמים). במילים אחרות, בעבור חישובים שלקחו משאבים רבים מהמערכת (זיכרון, זמן ריצה) או חישובים תדירים שיש לבצעם סטטיסיטית יותר מאשר חישובים אחרים, ישמרו נתונים בזכרון המטמון. כאשר התוכנית נתקלת בחישוב שזהה למה שנראה בעבר, אם הוא נשמר קודם לכן בזיכרון המטמון ועדיין זמין בו, היא תנצלו ובכך הושגה המטרה. זכרון מטמון של המעבד הוא זכרון נדיף (volatile memory) ולכן המידע בו נמחק כאשר המחשב כבוי.

זכרון המטמון של הכונן הקשיח (Hard Drive Cache) – כשמדובר בכוננים קשיחים, זמני הגישה למידע בהם הוא איטי מאוד כי הם מכניים. ועל כן, כונן קשיח (מודרני) כולל זכרון מטמון בנפחים של עשרות MB (מגה בתים). זכרון מטמון זה אינו מהיר כמו זכרון המטמון של המעבד, תדרו משמעותית נמוך יותר, ובהתאמה פחות יקר, אך הוא מהיר משמעותית מצד שני מהכונן הקשיח ומאפשר פתיחת לקבצים שנקראו בעבר ושמורים בו במהירות רבה. כך מקטינים את צוואר הבקבוק (Bottle Neck) הנותר כתוצאה מהקריאה האיטית של הכונן הקשיח ומשפרים את ביצועי המחשב כשמדובר בפתיחת קבצים רבים (בעיקר גדולים) לעיתים תכופות. כוננים קשיחים לביצועים גבוהים מסוגים מכניים שאינם SSD כוללים זכרון מטמון קאש בנפחים גדולים יותר כמו 64MB ל-500GB נפח כונן.

זיכרון מטמון של דפדפן האינטרנט (Browser Cache) – דפדפן האינטרנט ממפה תיקיה מיוחדת במחשב ובה ומאחסן מידע שהופיע באתרים שטען בעבר. מידע כזה יכול להיות קובצי ג’אווה סקריפטים (.js), קובצי מידע (.html, .xml), קובצי תמונה (.png, .gif, .jpg) ו-Flash (.swf). תיקייה זו מכונה תיקיית קבצי אינטרנט זמניים (Temporary Internet Files). דפדפנים שונים נותנים שמות שונים למידע זה, בין היתר ניתן למצוא את השם הנפוץ cache information. כאשר הדפדפן ניגש לדף באינטרנט שאינו השתנה מאז הביקור האחרון בו, הוא לא יוריד מחדש את כל הקבצים שקיימים באותו דף, אלא יקרא אותם מקבצי האינטרנט הזמניים שלו ששמר קודם לכן. כך, הדפים יטענו בזמן קצר במיוחד, שלרוב לא עולה על שניה אחת.
תכונה זו טובה במיוחד עבוד אתרים סטטים, או בעבור טעינת אתר כלשהו פעמים רבות ביום (כמו גימייל). אשר עבורם טעינה ראשונה תיקח את הזמן (השואף למקסימלי) המקסימלי והטעינות הבאות יקרו עד שניות ספורות. שימוש ב-caching בדפדפן מועיל גם לשרתים ולא רק לגולש. עם זאת, לעיתים, caching מביא ל”באגים” בטעינת אתרים (במיוחד באתרים מרובי סקריפטים ופלאש) ויש צורך לנקות את תוכנם דרך הדפדפן.

הטמנה (caching) בתוכנות אבטחה– תוכנות אבטחה רבות משתמשות בקאשינג (שמירת נתונים במטמון) לצורכי חסכון בחישובי מעבד ומשאבים אחרים. כך לדוגמה, תוכנות אנטי-וירוס מייעלות את הליך סריקת הקבצים במחשב בכך שאינן סורקות קבצים שנסרקו בעבר כל עוד לא עברו שינוי מאז הסריקה האחרונה שלהם (עם אותו מסד נתונים או אותם עומקי סריקה). במצב זה עבור כל קובץ, תשמור תוכנת האנטי וירוס את שמו, גודלו, קוד הגיבוב שלו (file hashing code), גרסת החתימות (Definition Version) ועומק הסריקה (scanning depth) בעבור מועד סריקתו האחרון. כל המידע הזה ישמר בזכרון המטמון שמקצה תוכנת האנטי-וירוס. התוצאות המושגות חסכון בזמן, בחישובי מעבד, בזיכרון וכן בחשמל, אשר הוא קריטי במחשבים ניידים (חיי סוללה וזמן סוללה).

תגובות

7 תגובות
  1. ההוא מהקיוסק הגיב

    אחלה מאמר יוסי, רק לא הבנתי משהו – L1 הוא הכי קרוב למעבד או L3?
    חג שמח ושבת שלום! 🙂

    1. יוסי לישה הגיב

      L1- מרמה 1 הכי קרוב למעבד (וכלול בו),
      חג שמח.

  2. מוטי הגיב

    שלום יוסי ..
    אני עומד לרכוש מחשב נייד של דל ואני מתלבט בין שני דגמי
    1: מעבד 2.9ghz – 1.8ghz דור 6 i5 עם 4m זיכרון מוטמן ו 8g זיכרון ram
    2:מעבד2.5ghz-3.1gh דור 7 i5 עם 3m זיכרון מוטמן ו8gזיכרון ram
    שאר הנתונים זהים …השאלה שלי :
    איזה יותר מהיר ויותר עדיף לי לרכוש …השימוש שלי אתרים כמו יד 2,פייס ,מוסיקה , וכו

    1. יוסי לישה הגיב

      שלום מוטי,
      לא משנה איזה מעבד תיקח אתה לא תרגיש בהבדל מבחינת ביצועים לשימושים שהצגת (שני המעבדים מעל ומעבר לשימושים בסיסיים). טכנולוגית עדיף את הדור ה-7, הוא גם מהיר יותר ממעבד הדור הקודם שציינת. כמות זיכרון המטמון בין שני אלה לא יטה את הכף.
      הצעתי, קח את זה שיותר נראה לך במחיר ובמראה.

  3. מוטי הגיב

    תודה , שבת שלום.

    1. יוסי לישה הגיב

      בשימחה, שבת שלום!

  4. אייזיק נודלס הגיב

    מה הקשר בין הגידול בתקציב הטרנזיסטורים שעמד לרשות מתכנני המעבדים לאורך כל ציר
    ההתפתחות של המעבדים, לבין הופעתם של מעבדים עם זיכרונות מטעמון (cache) ?

הגב

לא נפרסם את האימייל שלך.