זיכרון גישה אקראית

היסטוריה והגדרות בסיסיות

ארכיטקטורת פון נוימן היא מודל שהציע בשנות הארבעים המתמטיקאי ג'ון פון נוימן למבנהו של המחשב. במודל זה, זיכרון המחשב משמש הן לאחסון התוכנית והן לאחסון הנתונים שתוכנית זו קוראת או כותבת בעת ביצועה על ידי המעבד. מרבית המחשבים בנויים על־פי מודל זה. במימוש המקובל של ארכיטקטורה זו, זיכרון המחשב הוא זיכרון גישה אקראית.
בראשית ימי המחשוב, רבים מסוגי הזיכרון הזמינים לא היו מסוג "זיכרון גישה אקראית". אחד מסוגי הזיכרון הנפוצים היה "קו השהיה כספיתי" ("Mercury Delay Line"). סוג זה היווה את הזיכרון העיקרי של המחשב המסחרי הראשון - הENIAC. בהתקני זיכרון אלו, הגישה לזיכרון היא סדרתית, כלומר בכל רגע נתון כתובת מסוימת בזיכרון זמינה לקריאה או כתיבה, וכדי לקרוא או לכתוב מכתובת כלשהי, על המחשב להמתין שתורה של אותה כתובת יגיע.
החל מאמצע שנות ה־50 של המאה ה־20, בעקבות מספר המצאות, בעיקר בחברת IBM, התפשט השימוש בסוג חדש של זיכרון: זיכרון טבעות מגנטי (או "זיכרון ליבה מגנטית" - באנגלית "Magnetic-core memory"). לזיכרון זה היו שני יתרונות: המעבד יכול לגשת לכל כתובת בזיכרון בזמן גישה קבוע, ללא תלות בכתובת, בלי לחכות ש"תורה" של הכתובת יגיע, וכן העובדה שזיכרון זה אינו צורך הספק כדי לשמור על תוכנו, אלא רק לצורך פעולות הכתיבה והקריאה. משמעות העובדה האחרונה היא שתוכן הזיכרון נשמר גם אם מופסקת אספקת החשמל למחשב. להתקני זיכרון בעלי התכונה הראשונה קוראים "זיכרון גישה אקראית" ("RAM"), ולהתקני זיכרון עם התכונה השנייה קוראים "זיכרון בלתי נדיף" (Non Volatile memory").
ניתן לממש התקני זיכרון גם באמצעות שערים לוגיים, שהם רכיבי החומרה העיקריים מהם בנויים מחשבים. בראשית ימי המחשוב השתמשו במנורות רדיו למימוש שערים לוגיים, ועקב כך שימוש בשערים לוגיים למימוש זיכרון היה מוגבל מאד, משיקולים של נפח, הספק ומחיר.
לאחר המצאת הטרנזיסטור ב־1948, ובייחוד עם התפשטות השימוש במעגלים משולבים, התקני זיכרון הבנויים על מוליכים למחצה ("Semiconductors") דחקו את רגלי כל התקני הזיכרון האחרים, ולמעשה החל מאמצע שנות ה־70 של המאה ה־20 כל התקני הזיכרון המיוצרים מבוססים על טכנולוגיה זו, כאשר רובם ככולם נחשבים ל"זיכרון גישה אקראית".
ההתייחסות הנפוצה לזיכרון מחשב היא למעשה התייחסות לזיכרון הגישה האקראית שלו. בתקופה זו, המימוש הנפוץ של זיכרון גישה אקראית הוא בכרטיסי זיכרון גישה אקראית המורכבים על לוח האם של המחשב. בכל מחשב יש לפחות כרטיס אחד כזה (כרטיסים אחדים מאפשרים זיכרון גדול יותר). גודל הזיכרון ומהירות הגישה אליו הם מאפיינים בסיסיים של כל מחשב. להאצת הגישה לזיכרון משמש זיכרון המטמון של המעבד (שיש לו מאפיינים חלקיים של זיכרון גישה אקראית). 
חלק מכרטיסי ההרחבה המשוכללים, כגון כרטיס גרפי משוכלל כוללים גם רכיבי זיכרון, המשרתים את כרטיס ההרחבה. במקרים רבים, כרטיס כזה הוא למעשה מחשב ייעודי, עם מעבד משלו וזיכרון גישה אקראית משלו.

מהירות הזיכרון

בנוסף לפרמטר של נפח הזיכרון שנמדד בבתים, ביחידות שגדלו במשך השנים, מקילובייט למגהבייט ועד לגיגהבייט בתחילת המאה ה־21, ישנו פרמטר של מהירות הזיכרון שנמדד במספר פעולות בשנייה (הרץ). ככל שפיתוח הזיכרונות התקדם כך הואצה מהירותם, רכיב זיכרון מסוג DDR (בשנת 2006), למשל, פעל לרוב במהירות של 400MHz, ואילו רכיב DDR3 הואץ ב־2011 עד 2,000 MHz. כיום עם הגעת רכיבי DDR4 הואצה מהירות ה־RAM עד ל־4,600 MHz.

האצת הגישה לזיכרון

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

מבנה הנתונים בזיכרון

יחידת הנתונים הקטנה ביותר של הזיכרון היא סיבית (ביט), שלה שני ערכים בלבד: 0 או 1. ההבחנה בין שני ערכים אלה מיושמת בשני סוגים של מתח חשמלי, כשאחד מייצג את ה־0 והשני את ה־1. גישת המעבד לזיכרון נעשית ביחידה גדולה יותר - בית (בייט), המורכבת, במחשבים מודרניים, מ־8 סיביות. לכל בית יש כתובת, המשקפת את מספרו הסידורי מתחילת הזיכרון. הנתונים נשמרים בזיכרון המחשב בשיטת סדר בתים.
שתי יחידות נתונים אלה מתקיימות גם בנתונים המאוחסנים באמצעי לאחסון נתונים. 
יחידת נתונים נוספת, המאפיינת רק את הזיכרון והמעבד, היא המילה. במחשבי סדרת IBM System/360, שיצאה לעולם בשנת 1964, נקבע גודל מילה של 32 סיביות (ארבעה בתים). גודל זה של מילה הפך מאז למקובל ביותר, וגם במחשבים אחרים מקובל גודל מילה השווה לגודל זה, למחציתו או לכפליים ממנו. במעבד אינטל 8086, למשל, גודל מילה הוא 16 סיביות. לגודל המילה יש השפעה גם על גודל הזיכרון המרבי במחשב, משום שמילה (או חלק ממנה) משמשים לרישום הכתובת. לדוגמה, מעבד עם מילה בגודל 32 סיביות מאפשר שימוש בזיכרון שגודלו עד 4GB ‏(4,294,967,296 בתים) משום שבעזרת 32 סיביות ניתן לייצג  ערכים שונים. בשנותיה הראשונות של מערכת 360 שימשו רק 24 סיביות מתוך המילה לרישום כתובת, ולאחר מכן נוצלו למטרה זו 31 סיביות, כדי לאפשר זיכרון מרבי גדול יותר.
הזיכרון הוא רצף אחיד של ביטים, בתים ומילים. המשמעות לרצף זה ניתנת על ידי המעבד, הרואה חלק ממנו כרצף פקודות בשפת מכונה ומבצע אותן, ועל ידי התוכנה, הרואה חלקים מרצף זה כטקסט (בשיטות שונות של קידוד תווים), כמספר שלם (לפי סדר הבתים המתאים למעבד), כמספר בנקודה צפה, וכו'.

השימוש בזיכרון

זיכרון המחשב משמש לאחסון התוכנית שהמחשב מבצע ולאחסון הנתונים שתוכנית זו קוראת או כותבת בעת ביצועה על ידי המעבד. בהתאם לכך, תוכנו של הזיכרון משתנה תוך כדי פעולת התוכנית. בעיקר משתנה החלק שבו נמצאים הנתונים המעובדים, אך לעיתים משתנה גם החלק שבו נמצאת התוכנית (הוא בוודאי משתנה כאשר התוכנית המתבצעת מוחלפת באחרת). בנוסף לזיכרון, רוב המחשבים מכילים גם אמצעי אחסון חיצוניים, שתוכנם נשמר לטווח ארוך, ובהם דיסק קשיח, תקליטור, דיסק און קי ועוד. בעבר כונו שני הסוגים הללו "זיכרון ראשי" ו"זיכרון משני", בהתאמה. 
גודל הזיכרון שהמחשב זקוק לו תלוי ביישומי המחשב אותם מפעיל המשתמש וביעילות מערכת ההפעלה של המחשב. מערכות ההפעלה ותוכנות מחשב בכלל דורשות כמות מינימלית של זיכרון RAM כדי לפעול כהלכה. 
במחשבים אישיים, להרצת מערכת חלונות XP נחוץ זיכרון של לפחות 128 מגה בייט RAM כדי לפעול באופן מלא. מחשבים בעלי 64–128 מגה בייט עדיין יכולים להשתמש במערכת ההפעלה הזו, אך חלקים מהפונקציונליות שלה יהיו מנוטרלים. במחשב עם פחות מ־64 מגה בייט אין אפשרות להתקין את המערכת. במקרים רבים, הגדלת הזיכרון (אם על ידי הוספת כרטיס זיכרון, או על ידי החלפת כרטיס קיים בגדול יותר) משפרת את ביצועי המחשב.
במחשבים הראשונים שימש הזיכרון את מערכת ההפעלה, ובנוסף לה תוכנית אחת בלבד (בזמן נתון), שלרשותה עמד כל יתר הזיכרון של המחשב. בתחילת שנות ה־60 נוצרו מערכות הפעלה הפועלות בריבוי משימות, כך שבזיכרון שכנו בזמן נתון תוכניות אחדות, שכל אחת מהן קיבלה לשימושה נתח מהזיכרון, שנקרא מחיצה.

הצגת תוכן הזיכרון

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

זיכרון טבעות מגנטי

זיכרון טבעות מגנטי (Magnetic-core memory) היה הדרך הנפוצה למימוש זיכרון גישה אקראית בשנים 1955–1975. יחידת הזיכרון הבסיסית, ביט, מומשה על ידי טבעת ניתנת למגנוט בשתי דרכים, שדרכה עברו שני חוטים, בצורת שתי וערב. גישה לטבעת מסוימת, לקריאה ולכתיבה, נעשתה באמצעות העברת זרם חשמלי בשני החוטים העוברים דרכה.
בסוף שנות ה־70 הוחלף זיכרון זה בזיכרון עשוי מוליכים למחצה.

סוגי זיכרון מבוססי מוליכים למחצה

קיימים סוגים רבים של זיכרון מבוסס מוליכים למחצה. שני הנפוצים בהם מוכרים בדרך כלל כ־SRAM ו־DRAM

סוגים נוספים של זיכרון מוליכים למחצה

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

הבדלים בין RAM ל- ROM

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