ההבדל העיקרי בין כתובת לוגית לכתובת פיזית הוא שה-CPU מייצר כתובת לוגית במהלך הפעלת התוכנית בעוד שהכתובת הפיזית היא מיקום ביחידת הזיכרון.
במונחים פשוטים, המעבד מייצר את הכתובת הלוגית או הכתובת הווירטואלית. מנקודת המבט של תוכנית שפועלת, נראה כי פריט נמצא בכתובת שסופקה על ידי הכתובת הלוגית. יחידת זיכרון צופה בכתובת הפיזית. יתר על כן, הוא מאפשר גישה לתא זיכרון מסוים בזיכרון הראשי באמצעות אפיק הנתונים.
מהי כתובת לוגית?
CPU מייצר כתובת הגיונית. מנקודת המבט של תוכנית שפועלת, נראה כי פריט נמצא בכתובת שסופקה על ידי הכתובת הלוגית. תוכניות יישומים הפועלות במחשב אינן רואות את הכתובות הפיזיות. הם תמיד עובדים באמצעות הכתובות ההגיוניות. מרחב הכתובות הלוגי הוא קבוצת הכתובות הלוגיות, שתוכנית יוצרת. יש צורך למפות את הכתובות הלוגיות לכתובות פיזיות לפני השימוש בהן. התקן החומרה Memory Management Unit (MMU) מטפל בתהליך המיפוי הזה.
MMU מיפוי
MMU עוקב אחר מספר תוכניות מיפוי.בסכימת המיפוי הפשוטה ביותר, הערך בפנקס הרילוקיישן מתווסף לכל כתובת לוגית המופקת על ידי תוכניות יישומים לפני שליחתן לזיכרון. יש גם כמה שיטות מורכבות אחרות ליצור את המיפוי. קשירת כתובות (כלומר הקצאת הוראות ונתונים לכתובות זיכרון) יכולה להתרחש בשלושה זמנים שונים.
איור 01: כתובת לוגית ופיזית
ראשית, זה יכול לקרות בזמן ההידור אם מיקומי הזיכרון בפועל ידועים מראש, וזה יפיק את הקוד המוחלט בזמן ההידור.זה יכול לקרות גם בזמן טעינה אם מיקומי הזיכרון אינם ידועים מראש. לשם כך, יש ליצור קוד שניתן לאיתור מחדש בזמן ההידור. יתר על כן, כריכת כתובת יכולה להתרחש בזמן הביצוע. זה דורש תמיכה בחומרה למיפוי כתובות. בקשירת כתובות של זמן קומפיל וזמן טעינה, כתובות לוגיות ופיזיות זהות. אבל הליך זה שונה כאשר כריכת כתובת מתרחשת בזמן הביצוע.
מהי כתובת פיזית?
יחידת הזיכרון צופה בכתובת הפיזית או בכתובת האמיתית. זה מאפשר לאפיק הנתונים לגשת לתא זיכרון מסוים בזיכרון הראשי. MMU ממפה את הכתובת הלוגית לכתובת פיזית. לדוגמה, באמצעות סכימת המיפוי הפשוטה ביותר, אשר מוסיפה את ערך הרילוקיישן (נניח שהערך במאגר הוא y) לכתובת הלוגית, כתובת לוגית נעה בין 0 ל-x תמפה לטווח כתובות פיזי y עד x+ y.
יתר על כן, זה נקרא גם מרחב הכתובות הפיזי של אותה תוכנית. יש למפות את כל הכתובות הלוגיות לכתובות פיזיות לפני שניתן יהיה להשתמש בהן.
מה ההבדל בין כתובת לוגית לכתובת פיזית?
כתובת לוגית לעומת כתובת פיזית |
|
כתובת הגיונית היא הכתובת שבה נראה פריט שוכן מנקודת המבט של תוכנית יישום שמפעילה. | כתובת פיזית היא כתובת זיכרון שמיוצגת בצורה של מספר בינארי במעגל אפיק הכתובות על מנת לאפשר לאפיק הנתונים לגשת לתא אחסון מסוים של הזיכרון הראשי, או לרשום של זיכרון ממופה I /O device. |
Visibility | |
המשתמש יכול להציג את הכתובת הלוגית של תוכנית. | המשתמש לא יכול להציג את הכתובת הפיזית של התוכנית. |
שיטת הדור | |
CPU מייצר את הכתובת הלוגית. | MMU מחשב את הכתובת הפיזית. |
נגישות | |
המשתמש יכול להשתמש בכתובת הלוגית כדי לגשת לכתובת הפיזית. | המשתמש לא יכול לגשת ישירות לכתובת הפיזית. |
סיכום – כתובת לוגית לעומת כתובת פיזית
ההבדל בין כתובת לוגית לכתובת פיזית הוא ש-CPU מייצר כתובת לוגית כאשר התוכנית מופעלת בעוד שהכתובת הפיזית היא מיקום ביחידת הזיכרון. יש למפות את כל הכתובות הלוגיות לכתובות פיזיות לפני שה-MMU יוכל להשתמש בהן. הכתובות הפיזיות והלוגיות זהות בעת שימוש בקשירת כתובות של זמן קומפיל וזמן טעינה, אך הן שונות בעת שימוש בקשירת כתובת זמן ביצוע.