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

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

זיכרון גישה אקראית (RAM, ראשי תיבות של Random Access Memory) הוא שם כללי למספר רב של סוגי זיכרון מחשב, המתאפיינים כולם ביכולת המעבד לגשת ישירות לכל תא בזיכרון לפי כתובתו, לכתוב בו ולקרוא ממנו. ההתייחסות הנפוצה לזיכרון מחשב היא למעשה התייחסות לזיכרון הגישה האקראית הראשי שלו.

סוג הזיכרון הנמצא בשימוש נפוץ ביותר בימינו הוא DRAM. זיכרון מסוג זה הוא זיכרון נדיף (volatile), כלומר מאבד את תוכנו עם ניתוק הזיכרון ממקור האנרגיה שלו. בנוסף, DRAM דורש רענון (refresh) מספר פעמים בשנייה כדי לשמור את תוכנו.

היסטוריה והגדרות בסיסיות[עריכת קוד מקור | עריכה]

זיכרון "קו השהיה כספיתי" של ה-ENIAC
זיכרון טבעות מגנטי של מחשב CDC 6600, ‏ 64x64 סיביות. ממדי הרכיב - 10.8 x 10.8 ס"מ. זיכרון מסוג זה הוא ה-RAM הראשון שזכה לתפוצה נרחבת

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

בראשית ימי המחשוב, רבים מסוגי הזיכרון הזמינים לא היו מסוג "זיכרון גישה אקראית". אחד מסוגי הזיכרון הנפוצים היה "קו השהיה כספיתי" ("Mercury Delay Line"). סוג זה היווה את הזיכרון העיקרי של המחשב המסחרי הראשון - הENIAC. בהתקני זיכרון אלו, הגישה לזיכרון היא סדרתית, כלומר בכל רגע נתון כתובת מסוימת בזיכרון זמינה לקריאה או כתיבה, וכדי לקרוא או לכתוב מכתובת כלשהי, על המחשב להמתין שתורה של אותה כתובת יגיע.

החל מאמצע שנות ה-50 של המאה ה-20, בעקבות מספר המצאות, בעיקר בחברת IBM, התפשט השימוש בסוג חדש של זיכרון: זיכרון טבעות מגנטי (או "זיכרון ליבה מגנטית" - באנגלית "Magnetic-core memory"). לזיכרון זה היו שני יתרונות: המעבד יכול לגשת לכל כתובת בזיכרון בזמן גישה קבוע, ללא תלות בכתובת, בלי לחכות ש"תורה" של הכתובת יגיע, וכן העובדה שזיכרון זה אינו צורך הספק כדי לשמור על תוכנו, אלא רק לצורך פעולות הכתיבה והקריאה. משמעות העובדה האחרונה היא שתוכן הזיכרון נשמר גם אם מופסקת אספקת החשמל למחשב. להתקני זיכרון בעלי התכונה הראשונה קוראים "זיכרון גישה אקראית"‏[1] ("RAM"), ולהתקני זיכרון עם התכונה השנייה קוראים "זיכרון בלתי נדיף" (Non Volatile memory").

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

לאחר המצאת הטרנזיסטור ב-1948, ובייחוד עם התפשטות השימוש במעגלים משולבים, התקני זיכרון הבנויים על מוליכים למחצה ("Semiconductors") דחקו את רגלי כל התקני הזיכרון האחרים, ולמעשה החל מאמצע שנות ה-70 של המאה ה-20 כל התקני הזיכרון המיוצרים מבוססים על טכנולוגיה זו, כאשר רובם ככולם נחשבים ל"זיכרון גישה אקראית".

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

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

"זיכרון קריאה בלבד" - "ROM"[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – זיכרון לקריאה בלבד

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

מהירות הזיכרון[עריכת קוד מקור | עריכה]

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

האצת הגישה לזיכרון[עריכת קוד מקור | עריכה]

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

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

מבנה הנתונים בזיכרון[עריכת קוד מקור | עריכה]

יחידת הנתונים הקטנה ביותר של הזיכרון היא סיבית (ביט), שלה שני ערכים בלבד: 0 או 1. ההבחנה בין שני ערכים אלה מיושמת בשני סוגים של מתח חשמלי, כשאחד מייצג את ה-0 והשני את ה-1. גישת המעבד לזיכרון נעשית ביחידה גדולה יותר - בית (בייט), המורכבת, במחשבים מודרניים, מ־8 סיביות. לכל בית יש כתובת, המשקפת את מספרו הסידורי מתחילת הזיכרון. הנתונים נשמרים בזיכרון המחשב בשיטת סדר בתים.

שתי יחידות נתונים אלה מתקיימות גם בנתונים המאוחסנים באמצעי לאחסון נתונים.

יחידת נתונים נוספת, המאפיינת רק את הזיכרון והמעבד, היא המילה. במחשבי סדרת IBM System/360, שיצאה לעולם בשנת 1964, נקבע גודל מילה של 32 סיביות (ארבעה בתים). גודל זה של מילה הפך מאז למקובל ביותר, וגם במחשבים אחרים מקובל גודל מילה השווה לגודל זה, למחציתו או לכפליים ממנו. במעבד אינטל 8086, למשל, גודל מילה הוא 16 סיביות. לגודל המילה יש השפעה גם על גודל הזיכרון המרבי במחשב, משום שמילה (או חלק ממנה) משמשים לרישום הכתובת. לדוגמה, מעבד עם מילה בגודל 32 סיביות מאפשר שימוש בזיכרון שגודלו עד 4GB ‏(4,294,967,296 בתים) משום שבעזרת 32 סיביות ניתן לייצג \ 4,294,967,296=2^{32} ערכים שונים. בשנותיה הראשונות של מערכת 360 שימשו רק 24 סיביות מתוך המילה לרישום כתובת, ולאחר מכן נוצלו למטרה זו 31 סיביות, כדי לאפשר זיכרון מרבי גדול יותר.

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

השימוש בזיכרון[עריכת קוד מקור | עריכה]

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

גודל הזיכרון שהמחשב זקוק לו תלוי ביישומי המחשב אותם מפעיל המשתמש וביעילות מערכת ההפעלה של המחשב. מערכות ההפעלה ותוכנות מחשב בכלל דורשות כמות מינימלית של זיכרון RAM כדי לפעול כהלכה.

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

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

זיכרון וירטואלי[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – זיכרון וירטואלי

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

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

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

הצגת תוכן הזיכרון[עריכת קוד מקור | עריכה]

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

מימוש פיזי של זיכרון גישה אקראית[עריכת קוד מקור | עריכה]

זיכרון טבעות מגנטי[עריכת קוד מקור | עריכה]

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

בסוף שנות ה-70 הוחלף זיכרון זה בזיכרון עשוי מוליכים למחצה.

סוגי זיכרון מבוססי מוליכים למחצה[עריכת קוד מקור | עריכה]

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

"זיכרון סטטי" - SRAM[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – SRAM

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

"זיכרון דינמי" - DRAM[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – DRAM
כרטיסי DDR בנפח 512 מגהבייט ובתדר 400 מגהרץ

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

פעולת הרענון עלולה לעכב את הגישה לזיכרון: אם המעבד מנסה לגשת לכתובת מסוימת בדיוק ברגע שמעגלי הרענון מרעננים אותה, הגישה מהמעבד מתעכבת.

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

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

זיכרון מסוג DRAM הוא הזיכרון הנפוץ ביותר בשימוש בימינו, וקיימים דורות רבים של טכנולוגיה זו (ראו להלן).

סוגים נוספים של זיכרון מוליכים למחצה[עריכת קוד מקור | עריכה]

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

כרטיסי זיכרון גישה אקראית[עריכת קוד מקור | עריכה]

זיכרונות RAM מלמעלה למטה:DIP, SIPP, SIMM 30 pin, SIMM 72 pin, DIMM (168-pin), DDR DIMM (184-pin). למעט הפריט העליון, כל הפריטים הם כרטיסי זיכרון

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

סוגי כרטיסי זיכרון RAM, על פי האות החשמלי שהם מתאימים לו:

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ראו גם[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

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