בנוסף לפרמטר של נפח הזיכרון שנמדד בבתים, ביחידות שגדלו במשך השנים, מקילובייט למגהבייט ועד לגיגהבייט בתחילת המאה ה־21, ישנו פרמטר של מהירות הזיכרון שנמדד במספר פעולות בשנייה (הרץ). ככל שפיתוח הזיכרונות התקדם כך הואצה מהירותם. רכיב זיכרון מסוג DDR (בשנת 2006), למשל, פעל לרוב במהירות של 400MHz, ואילו רכיב DDR3 הואץ ב־2011 עד 2,000 MHz. רכיבי DDR4 הואצו למהירות של יותר מ-5,600MHz בשנת 2019.
האצת הגישה לזיכרון.
אף שמהירות הזיכרון גדלה במהלך השנים באופן דרמטי, עדיין קיים פער בין מהירות הזיכרון למהירות המעבד. מעבדים מודרניים פועלים בקצב הגבוה באופן משמעותי מקצב העבודה של הזיכרון, ולכן נוצר צוואר בקבוק בגישה לזיכרון. התמודדות עם בעיה זו היא באמצעות הוספת זיכרון מטמון המוטמע במעבד עצמו (או בקרבתו) וניהול מדרגי של הזיכרון.
זיכרון המטמון הוא זיכרון מחשב מהיר שקיבולתו קטנה, ותפקידו לצמצם את הגישה לזיכרון הראשי המאופיינת באיטיות ביחס למהירות המעבד. הגישה של המעבד אל זיכרון המטמון היא הישירה והמהירה ביותר, ועל כן פעולות של המעבד על נתונים מזיכרון המטמון, הן מהירות הרבה יותר מאלה המתבצעות על נתונים מהזיכרון הראשי.
מבנה הנתונים בזיכרון.
יחידת הנתונים הקטנה ביותר של הזיכרון היא סיבית (ביט), שלה שני ערכים בלבד: 0 או 1. ההבחנה בין שני ערכים אלה מיושמת בשני סוגים של מתח חשמלי, כשאחד מייצג את ה־0 והשני את ה־1. גישת המעבד לזיכרון נעשית ביחידה גדולה יותר – בייט (Byte), המורכבת, במחשבים מודרניים, מ־8 סיביות. לכל בית יש כתובת, המשקפת את מספרו הסידורי מתחילת הזיכרון. הנתונים נשמרים בזיכרון המחשב בשיטת סדר בתים.
שתי יחידות נתונים אלה מתקיימות גם בנתונים המאוחסנים באמצעי לאחסון נתונים.
יחידת נתונים נוספת, המאפיינת רק את הזיכרון והמעבד, היא המילה. במחשבי סדרת IBM System/360, שיצאה לעולם בשנת 1964, נקבע גודל מילה של 32 סיביות (ארבעה בתים). גודל זה של מילה הפך מאז למקובל ביותר, וגם במחשבים אחרים מקובל גודל מילה השווה לגודל זה, למחציתו או לכפליים ממנו. במעבד אינטל 8086, למשל, גודל מילה הוא 16 סיביות. לגודל המילה יש השפעה גם על גודל הזיכרון המרבי במחשב, משום שמילה (או חלק ממנה) משמשים לרישום הכתובת. לדוגמה, מעבד עם מילה בגודל 32 סיביות מאפשר שימוש בזיכרון שגודלו עד 4GB (4,294,967,296 בתים) משום שבעזרת 32 סיביות ניתן לייצג formula_1 ערכים שונים. בשנותיה הראשונות של מערכת 360 שימשו רק 24 סיביות מתוך המילה לרישום כתובת, ולאחר מכן נוצלו למטרה זו 31 סיביות, כדי לאפשר זיכרון מרבי גדול יותר.
הזיכרון הוא רצף אחיד של ביטים, בתים ומילים. המשמעות לרצף זה ניתנת על ידי המעבד, הרואה חלק ממנו כרצף פקודות בשפת מכונה ומבצע אותן, ועל ידי התוכנה, הרואה חלקים מרצף זה כטקסט (בשיטות שונות של קידוד תווים), כמספר שלם (לפי סדר הבתים המתאים למעבד), כמספר בנקודה צפה, וכו'.
השימוש בזיכרון.
זיכרון המחשב משמש לאחסון התוכנית שהמחשב מבצע ולאחסון הנתונים שתוכנית זו קוראת או כותבת בעת ביצועה על ידי המעבד. בהתאם לכך, תוכנו של הזיכרון משתנה תוך כדי פעולת התוכנית. בעיקר משתנה החלק שבו נמצאים הנתונים המעובדים, אך לעיתים משתנה גם החלק שבו נמצאת התוכנית (הוא בוודאי משתנה כאשר התוכנית המתבצעת מוחלפת באחרת). בנוסף לזיכרון, רוב המחשבים מכילים גם אמצעי אחסון חיצוניים, שתוכנם נשמר לטווח ארוך, ובהם דיסק קשיח, תקליטור, דיסק און קי ועוד. בעבר כונו שני הסוגים הללו "זיכרון ראשי" ו"זיכרון משני", בהתאמה.
גודל הזיכרון שהמחשב זקוק לו תלוי ביישומי המחשב אותם מפעיל המשתמש וביעילות מערכת ההפעלה של המחשב. מערכות ההפעלה ותוכנות מחשב בכלל דורשות כמות מינימלית של זיכרון RAM כדי לפעול כהלכה.
במחשבים אישיים, להרצת מערכת חלונות XP נחוץ זיכרון של לפחות 128 מגה בייט RAM כדי לפעול באופן מלא. מחשבים בעלי 64–128 מגה בייט עדיין יכולים להשתמש במערכת ההפעלה הזו, אך חלקים מהפונקציונליות שלה יהיו מנוטרלים. במחשב עם פחות מ־64 מגה בייט אין אפשרות להתקין את המערכת. במקרים רבים, הגדלת הזיכרון (אם על ידי הוספת כרטיס זיכרון, או על ידי החלפת כרטיס קיים בגדול יותר) משפרת את ביצועי המחשב.
במחשבים הראשונים שימש הזיכרון את מערכת ההפעלה, ובנוסף לה תוכנית אחת בלבד (בזמן נתון), שלרשותה עמד כל יתר הזיכרון של המחשב. בתחילת שנות ה־60 נוצרו מערכות הפעלה הפועלות בריבוי משימות, כך שבזיכרון שכנו בזמן נתון תוכניות אחדות, שכל אחת מהן קיבלה לשימושה נתח מהזיכרון, שנקרא מחיצה.
זיכרון וירטואלי.
הצורך בזיכרון גדול יותר, יחד עם מחירו הגבוה של זיכרון RAM הובילו בשנות ה־70 של המאה ה־20 לפתרון של זיכרון וירטואלי, שבו הזיכרון העומד לכאורה לרשות התוכניות המבוצעות גדול משמעותית מהזיכרון הפיזי. זיכרון וירטואלי הוא מרחב זיכרון מדומה העומד לרשות תהליך, והוא גדול מהזיכרון הפיזי המשמש תהליך זה. מרחב הזיכרון הווירטואלי נמצא על אמצעי לאחסון נתונים (כגון דיסק קשיח), והחלקים מתוכו הנחוצים למעבד בזמן נתון מובאים לזיכרון הממשי על ידי מערכת ההפעלה, תוך שהם מחליפים חלקי זיכרון שאין בהם צורך באותו רגע.
הגישה לזיכרון הווירטואלי נעשית בשיטת דפדוף. כל כתובת זיכרון שאליה ניגש המעבד היא כתובת וירטואלית המורכבת ממקטע (segment) והֵסֶט (offset). תפקיד היחידה לניהול זיכרון, רכיב חומרה הקיים בדרך כלל במעבד, להפוך את הכתובת הווירטואלית המתבקשת לכתובת פיזית בעת הפנייה לזיכרון.
בסיסו של הזיכרון הווירטואלי בעובדה שגם תוכנית הזקוקה לזיכרון רב, אינה זקוקה לכולו בבת אחת, אלא משתמשת בזמן נתון רק בחלק מהזיכרון הכולל שהיא צורכת, ולכן די בהחזקתו של חלק זה בלבד בזיכרון הפנימי, עם אפשרות להחלפתו לפי הצורך, בלי שהחלפה זו תפגע משמעותית בביצועי המחשב.
הצגת תוכן הזיכרון.
תוכנו של הזיכרון ברגע נתון מעניין לעיתים את המתכנת, בעת שהוא עוסק בניפוי שגיאות. למטרה זו באפשרותו לקבל תדפיס זיכרון (core dump), המציג לו את מלוא תוכנו של הזיכרון ששימש את התוכנית הנבדקת ברגע שבו נפסקה פעולתה. כיוון שגודל בית בזיכרון הוא 8 ביטים, מוצג הזיכרון בבסיס הקסדצימלי, שבו שתי ספרות מייצגות בית אחד. בתדפיס זה התוכנה מוצגת בשפת מכונה, המובנת רק למתכנתי שפת סף.
מימוש פיזי של זיכרון גישה אקראית.
זיכרון ליבה מגנטית.
זיכרון ליבה מגנטית (Magnetic-core memory) היה הדרך הנפוצה למימוש זיכרון גישה אקראית בשנים 1955–1975. יחידת הזיכרון הבסיסית, ביט, מומשה על ידי טבעת ניתנת למגנוט בשתי דרכים, שדרכה עברו שני חוטים, בצורת שתי וערב. גישה לטבעת מסוימת, לקריאה ולכתיבה, נעשתה באמצעות העברת זרם חשמלי בשני החוטים העוברים דרכה.
בסוף שנות ה־70 הוחלף זיכרון זה בזיכרון עשוי מוליכים למחצה.
סוגי זיכרון מבוססי מוליכים למחצה.
קיימים סוגים רבים של זיכרון מבוסס מוליכים למחצה. שני הנפוצים בהם מוכרים בדרך כלל כ־SRAM ו־DRAM
זיכרון סטטי – SRAM.
SRAM, או Static RAM הוא מימוש זיכרון באמצעות טרנזיסטורים. המימוש הנפוץ הוא באמצעות מעגל פליפ פלופ. התקני SRAM דורשים לפחות שישה טרנזיסטורים לכל סיבית של זיכרון. התקנים אלו מהירים מאוד, ואינם דורשים רענון ("Refresh") של תוכן הזיכרון. לעומת התקני DRAM, התקן SRAM הוא מהיר יותר, אך צפוף פחות (כלומר רכיב באותו גודל מכיל פחות זיכרון), צורך הספק גבוה יותר, ויקר יותר.
זיכרון דינמי – DRAM.
DRAM או Dynamic RAM הוא התקן זיכרון בו נשמר תוכן הזיכרון בהתקן דמוי קבל. כיוון שסיבית בודדת של זיכרון נשמרת בקבל יחיד (לעומת מספר טרנזיסטורים בהתקני זיכרון אחרים), זיכרון DRAM מספק צפיפות גבוהה ביותר ומחיר (משוקלל לגודל הזיכרון) נמוך יותר מרוב סוגי הזיכרון האחרים. חסרונו של זיכרון זה הוא בעובדה שיש לרענן אותו כל הזמן. משמעות הרענון היא חידוש המטען בקבל, שבגלל הפסדים של זרם זליגה הולך ופוחת כל הזמן.
פעולת הרענון עלולה לעכב את הגישה לזיכרון: אם המעבד מנסה לגשת לכתובת מסוימת בדיוק ברגע שמעגלי הרענון מרעננים אותה, הגישה מהמעבד מתעכבת.
השימוש היעיל ביותר ב־DRAM מודרני מתבצע על ידי גישה ב"פרצים" ("Bursts"), כלומר קריאה מן הזיכרון של מספר מילים שנמצאות בכתובות רציפות. גודל הפרץ האופטימלי תלוי בסוג הזיכרון, אך הגודל המקובל הוא ארבע מילים: קריאה בפרץ אחד של ארבע מילים בכתובות רציפות בזיכרון מהירה בהרבה מקריאה של ארבע מילים שנמצאות כל אחת בכתובת אחרת.
בגלל שתי תכונות אלו (המתנה לרענון והעדיפות לקריאה בפרצים), אפשר לומר ש־DRAM למעשה חורג מעט מהגדרת "זיכרון גישה אקראית". למרות זאת מקובל כיום להתייחס ל־DRAM כאל זיכרון גישה אקראית.
זיכרון מסוג DRAM הוא הזיכרון הנפוץ ביותר בשימוש בימינו, וקיימים דורות רבים של טכנולוגיה זו (ראו להלן).
סוגים נוספים של זיכרון מוליכים למחצה.
קיימים סוגים נוספים רבים של זיכרון מוליכים למחצה, כולל סוגים של זיכרון לא נדיף ("Non-volatile"), ובהם זיכרון בועות, וסוגים נוספים מפותחים כל הזמן. עם זאת, בגלל הצלחתה של התעשייה האלקטרונית להמשיך ולייצר DRAM בצפיפות הולכת וגדלה ומחיר הולך ויורד, אין סיבה לחשוב שאחד מהסוגים הנוספים הללו יהפוך לסוג הזיכרון העיקרי בשימוש.
כרטיסי זיכרון גישה אקראית.
כרטיסי זיכרון גישה אקראית הם לוחות של מעגלים מודפסים שבקצה האחד שלהם יש משטח עם קצוות מתכתיים חשופים הננעץ בחריצים המיועדים לכרטיסי הזיכרון, בלוח האם. הרכיבים הבולטים ביותר בכרטיסים הם סדרה של שבבים גדולים וזהים, שבבי הזיכרון.