בפוסט קודם [1] תיארנו את היתרונות בביצוע פעולות חישוב בתוך רכיבי הזיכרון של המחשבים. אבל כיצד זה אפשרי? נראה דוגמה פשוטה לחישוב כזה תוך שימוש בסוג חדיש של זיכרון הנקרא ממריסטור [2], אבל לפני כן נוביל אתכם למסע בעולם של זיכרונות המחשבים, ונצא אליו דווקא בעקבות קבוצת פועלים.
מאת דורון אורנשטיין וידידי העמותה, רוני רונן ופרופ' שחר קוטינסקי
נדמיין שאנו נמצאים בחברת קבוצת פועלים העוסקת בהשקיה, למשל בשדה שיפון. בכל צינור השקיה יש שסתום חד-כיווני הדומה לשסתום במשאבת אופניים: כשמחברים את הצינור לברז בכיוון הראשי, השסתום נפתח והזרימה חזקה, וכשמחברים מהכיוון השני, השסתום חוסם חלקית את המעבר והזרימה חלשה. המיוחד בצינורות הללו הוא שהשסתום נוטה להיתקע כשפותחים ברז בלחץ גבוה: הוא נתקע במצב הפתוח כשמחברים את הצינור מצידו הקדמי, או במצב סגור בחיבור אחורי. מצב השסתום נשמר אפילו כשסוגרים את הברז, וצריך להזרים שוב מים בלחץ גבוה כדי לשנות את מצבו (ראו איור 1).
פועל שניגש לצינור ההשקיה יכול לבדוק איך חיבר אותו הפועל שהשתמש בו אתמול. לשם כך הוא מחבר את הצינור לברז מצידו הקדמי, פותח את הברז במתינות ובודק את עוצמת הזרימה: אם הזרימה חלשה מאוד (נקרא לזה מצב "0" לוגי), הוא מסיק שהשסתום נותר תקוע במצב סגור ומכאן שהפועל הקודם חיבר את הצינור הפוך. אם עוצמת הזרימה חזקה יחסית, הוא מסיק שהצינור חובר מהצד הקדמי (מצב "1" לוגי).
ידידנו הפועל מזהה כאן סוג של זיכרון בעל שני מצבים שאפשר לבדוק ולשנות את תוכנו, והוא שומר על מצבו עד שמשנים אותו מחדש. באמצעות שימוש במספר צינורות כאלו הפועלים יכולים ליצור מערך זיכרון ולהשתמש בו כדי לתקשר ביניהם. למשל, אם הפועלים רוצים להעביר הודעה בינרית, צירוף שמונה צינורות במצב "01110011" מייצר קידוד סטנדרטי של האות S – והנה התחלה של הודעת "SOS". מדוע זה מעניין? הרי ניתן לבנות התקני זיכרון בהרבה צורות משונות, אפילו באמצעות כריות [3]. אבל הסיפור הזה מציג אנלוגיה לסוג חדש של זיכרון מחשב הנקרא ממריסטור (Memristor = Memory + Resistor), שנמצא כיום בשלבי מחקר ופיתוח מתקדמים.
כיום רוב הזיכרונות במחשבים, למשל אלו הממומשים בטכנולוגיית DRAM, משתמשים בטעינת מטענים חשמליים על גבי לוחות קבלים: כדי לשמור "1" טוענים קבל, ולשמירת "0" פורקים אותו. הדבר דומה לפועלים שבונים מערך זיכרון על ידי חפירת גומות באדמה: לשמירת ערך "1" שופכים מים לתוך הגומה, ולשמירת "0" מייבשים אותה. הצרה היא שהמים מחלחלים בקרקע, ולכן נדרשים משגיחים שתפקידם לעבור בין הגומות ולמלא מחדש את אלו שזקוקות למילוי, כדי למנוע מהן להתייבש. הבעיה הגדולה מתעוררת בלילה: הפועלים הולכים לישון, המים מחלחלים לאדמה והמידע שנשמר בזיכרון הגומות נמחק ואיננו. גם כשאנחנו הולכים לישון ומכבים את המחשב הביתי, כל זיכרונות ה-DRAM המבוססים על טעינת הקבלים נמחקים.
כדי לפתור את הבעיה במחשבים פותחו טכנולוגיות אחרות המאפשרות לאגור מטענים חשמליים בתוך שכבות אטומות שלא מחלחלות החוצה, לדוגמה "זיכרון הבזק" [4]. זיכרונות כאלו, שנשמרים גם ללא מתח חשמלי, נקראים זיכרונות לא נדיפים ומשמשים כיום לבניית התקני SSD, המחליפים את הכוננים המגנטים במחשבים. אולם טכנולוגיות אלו מתיישנות, והחוקרים מחפשים טכנולוגיות חדשות למימוש זיכרונות לא נדיפים, כדי להשיג ביצועים משופרים כמו הגדלת צפיפות ומהירות הגישה וחיסכון באנרגיה.
בשנים האחרונות התגלו שילובי חומרים, שהזרמת זרם חשמלי חזק דרכם גורמת לשינוי מסוים במבנה החומר, וזה יוצר שינוי של ההתנגדות בהתאם לכיוון הזרימה, ממש כמו בצינורות ההשקיה. הפעלת מתח גבוה יחסית (פתיחת ברז בעוצמה) בכיוון אחד מקטינה את ההתנגדות (השסתום נפתח ומאפשר זרימה), והפעלה בכיוון השני מגדילה אותה (השסתום נסגר וחוסם חלקית את הזרימה). עוצמת ההתנגדות נשמרת גם כאשר סוגרים את מקור המתח, ובאמצעות הפעלת מתח נמוך ובדיקת עוצמת הזרימה אפשר לקרוא את מצב הזיכרון. מהנדסים וחוקרים שוקדים על פיתוח יעיל של טכנולוגיות כאלו, הנקראות ממריסטורים או זיכרונות התנגדותיים (Resistive RAM) ליצירת מערכי זיכרונות צפופים ויעילים [6].
וכאן מגיע סיפורנו לשיא דרמטי: מתברר שאפשר להשתמש באותם רכיבי זיכרון גם לחישובים! בעולם המחשבים משתמשים לצורך חישובים במעגלים חשמליים שלעיתים מזרימים זרם ביציאתם (מצב "1") ובפעמים אחרות לא (מצב "0"), בהתאם למצב הכניסות. כיצד נממש מעגל כזה באמצעות ממריסטורים?
נחזור לשדה השיפון. אם שני פועלים מחברים את הצינורות שלהם לברזים במצב הפוך, ואת היציאות למיכל עם צינור ניקוז, יתקבל זרם חזק ביציאה רק אם שני הברזים פתוחים (ראו איור 2). סיפור דומה קיים גם בחיבור של ממריסטורים [6]. מי שמצוי קצת בעולם המחשבים, יזהה מייד שהפועלים שלנו מימשו שער לוגי שנקרא AND, שהוא אבן בניין בסיסית בתכנון מעגלים דיגיטליים. המימוש האמיתי באמצעות ממריסטורים מורכב יותר, אולם באמצעות שילוב של שערים לוגיים פשוטים הממומשים בדרך דומה, אפשר לבנות מעגלים המבצעים חישובים שונים, והחוקרים מוצאים דרכים לשלב מעגלים כאלו ביעילות בתוך רכיב הזיכרון.
עזבנו את הפועלים שלנו כשהם משתעשעים בחיבור צינורות, אבל החוקרים עובדים בינתיים ברצינות, ומראים תוצאות מבטיחות למימוש החזון של ביצוע חישובים בתוך זיכרונות המחשבים.
עריכה: שיר רוזנבלום-מן
מקורות לקריאה נוספת:
[1] מדוע כדאי להשתמש ברכיבי זיכרון לחישוב?
[2] על ממריסטור
[4] זיכרון הבזק
[5] זיכרון RRAM
[6] מימוש לוגיקה באמצעות ממריסטור