omerkotAdminאם אנחנו כבר משועממים ובשוונגים של כתיבה אז כמה הערות לגבי זכרונות.
בלי קשר לכל השמות המפוצצים, DRAM זה DRAM, זה מערך ענקי של קבלים קטנטנים כשכל קבל כזה אוגר ביט מידע. הקבלים האלה מחוברים לרשת של מוליכים שמנוהלת על ידי מעגל בקרה (בקר) שמורכב מרכיבים לוגיים, אחראי לתחזק את כל העסק הזה ומדבר עם העולם החיצוני.
כמו כל זכרון אחר, בלי קשר לסוג, לא ניתן לגשת למאגר המידע הזה בבת אחת ובמקביל (זה בין היתר היה מחייב להוציא מהצ'יפ שלו מיליארדי רגליים... ) ולכן הגישה מתוכננת להתבצע בנתחים קטנים, בקבוצות של קבלים שמוגדרות כ"word" כשבעשרות השנים האחרונות, מילה כזו היא בד"כ קבוצה של 32 ביטים של מידע (שמקבילים ל32 קבלים או מעט יותר אם קיימת בקרת שגיאות).
לDRAM יש יתרון אדיר במובן זה שכל ביט נאגר ביחידת שטח מצחיקה ולכן אפשר לדחוס אותם בצורה קיצונית ולקבל נפחי אחסון גדולים אבל יש לו כמה חסרונות בולטים ובשביל להבין אותם אפשר להסתכל על כל קבל כזה כמו מיכל מים (אלקטרונים) שכל הזמן דולף. אם אנחנו רוצים לכתוב אליו, אנחנו צריכים למלא או לרוקן אותו (בהתאם לביט שהיה בו והביט שרוצים לכתוב אליו) כשמילוי וריקון של מים זה תהליך שלוקח זמן... אם אנחנו רוצים לקרוא את מה שיש בו אנחנו צריכים לפתוח את הפקק ולבדוק מה יוצא תוך ריקון פוטנציאלי של המיכל אבל גם אם אנחנו לא עושים כלום, משום שכל המיכלים דולפים באגרסיביות, תוך זמן קצר הDRAM יאבד את כל המידע שאגור עליו (AKA זכרון "נדיף"😉. מהטעם הזה לבקר של הזכרון יש לא מעט עבודת ניהול ותחזוקה כשהוא חייב כמה פעמים בשניה לקרוא ולכתוב מחדש את התוכן של הזכרון בזמן שהוא מנהל תקשורת עם העולם החיצוני שלא יכול להיות חשוף לתחזוקה שלו כשמלכתחילה אנחנו זוכרים שכל קריאה היא הרסנית ומחייבת כתיבה מחדש ושכל כתיבה וקריאה זה תהליך ארוך.
SRAM הוא לא DRAM. כל ביט בSRAM שמור בתוך מעגל חשמלי לוגי פשוט יחסית (SR latch) אבל כזה שעדין תופס שטח שהוא לפחות גדול פי 10 מזה של ביט DRAM, מה שגם הופך אותו לרגיש הרבה יותר לתקלות ייצור וכל הדבר הזה מתרגם לעלות גבוהה מאוד. מהצד השני, ביט SRAM הוא לא מיכל שצריך למלא ולרוקן אלא יותר כמו דגל שאפשר להרים ולהוריד ולכן הכתיבה שלו היא תהליך שלוקח מעט מאוד זמן (מהירה בהרבה מכל תהליך אחר שקורה מסביב), הוא לא נדיף, הקריאה שלו מיידית ולא הרסנית כשכל זה מתורגם לזכרון מהיר בצורה קיצונית שלא מהווה חסם שמעכב תהליכים אחרים שקורים ברקע. עדיין, כמובן, הגישה אליו היא ביחידות של "word".
ועכשיו מעט הנדסה, היסטוריה וביזנס. עד תחילת שנות ה90, זכרונות DRAM פעלו בהתאם להגדרות שקבעו יצרני המעבדים/מחשבים ויוצרו במטרה לעמוד בפרמטרים החשמליים והתרמיים ובממשק שנקבע עבורם. בתחילת שנות ה90 עלה הצורך לעשות סדר ולייצר סטנדרטיזציה שתאפשר מצד אחד ליצרני המחשבים והמעבדים לתכנן אותם באופן מסוים ואת יצרני הזכרונות לתכנן זכרונות תואמים כשכולם מחויבים לתקן. התקן הבסיסי נקבע ע"י אינטל, אומץ על ידי ארגון התקינה הרלוונטי של חברות המוליכים למחצה (JEDEC) ומאז ועד היום הארגון מוציא תקנים רלוונטיים מעודכנים DDRx ,GDDRx וHBMx שלוקחים בחשבון את התקדמות הטכנולוגיה ואת הצרכים. בהקשר הזה ההבדל בין DDR לGDDR וHBM הוא הנדסי בלבד כשהאחרונים מכיל בקר שמאפשר קריאה מקבילה של יותר מילים במקביל. עבודה מקבילית כזו היא דבר שיש בו המון הגיון כשמדובר על פעילות של כרטיסי מסך שכל הזמן צריכים ליצר ולשנע כמויות אדירות של מידע במקביל אבל זה מאוד לא רלוונטי למעבד הראשי שלא צריך ולא מסוגל להתעסק עם נתחים כל כך גדולים של אינפורציה.
פחות או יותר במקביל לתהליך הזה ובאופן עצמאי ממנו, הוקמה חברה פרטית בשם RAMBUS שהחליטה להגדיר בעצמה תקנים לזכרונות DRAM מתקדמים יותר שלפעמים גם אומצו על ידי יצרניות שונות (RDRAM, XDR ושות) ובעיקר רשמה פטנטים ותבעה את כל העולם ואשתו (בהצלחה מוגבלת). זו לא טכנולוגיה אחרת אלא רק ניצול של העובדה שארגון תקנים הוא גוף בירוקרטי ואיטי שמגיע להסכמה ופשרות בין המון יצרנים שונים עם אינטרסים שונים ומשונים בעוד שחברה מסחרית אחת היא גוף בלתי תלוי שיכול להגדיר מה שבא לו אבל חייב לעבוד קשה מאוד בשביל לשכנע מישהו להשתמש במוצרים הלא סטנדרטיים והיקרים שלו.

