צוות מהנדסים מ-MIT פיתח היררכיית זיכרון מונחה עצמים כדי לעבוד עם נתונים בצורה יעילה יותר. במאמר נבין איך זה עובד.
/ /PD
כידוע, העלייה בביצועים של מעבדים מודרניים אינה מלווה בירידה מקבילה בהשהיה בעת גישה לזיכרון. ההבדל בשינויים באינדיקטורים משנה לשנה יכול להיות עד פי 10 (). כתוצאה מכך נוצר צוואר בקבוק שמונע שימוש מלא במשאבים הזמינים ומאט את עיבוד הנתונים.
נזק לביצועים נגרם על ידי מה שנקרא עיכוב הדקומפרסיה. במקרים מסוימים, דחיסת נתונים הכנה יכולה להימשך עד 64 מחזורי מעבד.
לשם השוואה: חיבור וכפל של מספרי נקודה צפה לא יותר מעשרה מחזורים. הבעיה היא שהזיכרון עובד עם בלוקי נתונים בגודל קבוע, ואפליקציות פועלות עם אובייקטים שיכולים להכיל סוגים שונים של נתונים ולהבדיל זה מזה בגודלם. כדי לפתור את הבעיה, מהנדסים ב-MIT פיתחו היררכיית זיכרון מונחה עצמים המייעלת את עיבוד הנתונים.
איך הטכנולוגיה עובדת
הפתרון מבוסס על שלוש טכנולוגיות: Hotpads, Zippads ואלגוריתם הדחיסה COCO.
Hotpads הם היררכיה נשלטת על ידי תוכנה של זיכרון רשום במהירות גבוהה (). רגיסטרים אלו נקראים פדים ויש שלושה מהם - מ-L1 עד L3. הם מאחסנים אובייקטים בגדלים שונים, מטא נתונים ומערכי מצביעים.
בעיקרו של דבר, הארכיטקטורה היא מערכת מטמון, אך מותאמת לעבודה עם אובייקטים. רמת הרפידה עליו נמצא האובייקט תלויה בתדירות השימוש בו. אם אחת הרמות "עולה על גדותיה", המערכת מפעילה מנגנון דומה ל"אספני אשפה" בשפות Java או Go. הוא מנתח באילו אובייקטים נעשה שימוש בתדירות נמוכה יותר מאחרים ומעביר אותם אוטומטית בין רמות.
Zippads עובד על גבי Hotpads - מאחסנת נתונים בארכיון ונכנסים או יוצאים משתי הרמות האחרונות של ההיררכיה - משטח L3 והזיכרון הראשי. המשטח הראשון והשני מאחסנים נתונים ללא שינוי.

Zippads דוחס אובייקטים שגודלם אינו עולה על 128 בתים. אובייקטים גדולים יותר מחולקים לחלקים, אשר ממוקמים לאחר מכן באזורי זיכרון שונים. כפי שכותבים המפתחים, גישה זו מגדילה את מקדם הזיכרון בשימוש יעיל.
כדי לדחוס אובייקטים, נעשה שימוש באלגוריתם COCO (Cross-Object Compression), עליו נדון בהמשך, אם כי המערכת יכולה לעבוד גם איתה או . אלגוריתם COCO הוא סוג של דחיסה דיפרנציאלית (). זה משווה אובייקטים ל"בסיס" ומסיר ביטים כפולים - ראה את התרשים שלהלן:

לפי מהנדסים מ-MIT, היררכיית הזיכרון מונחה העצמים שלהם פרודוקטיבית ב-17% מגישות קלאסיות. זה הרבה יותר קרוב בעיצוב לארכיטקטורה של יישומים מודרניים, כך שלשיטה החדשה יש פוטנציאל.
צפוי שחברות שעובדות עם אלגוריתמים ביג דאטה ולמידת מכונה יתחילו להשתמש בטכנולוגיה תחילה. כיוון פוטנציאלי נוסף הוא פלטפורמות ענן. ספקי IaaS יוכלו לעבוד בצורה יעילה יותר עם וירטואליזציה, מערכות אחסון נתונים ומשאבי מחשוב.
המשאבים והמקורות הנוספים שלנו:
![]()
![]()
![]()
![]()
![]()
![]()
מקור: www.habr.com
