تفاوت اصلی بین آدرس منطقی و آدرس فیزیکی این است که CPU آدرس منطقی را در طول اجرای برنامه تولید می کند در حالی که آدرس فیزیکی مکانی در واحد حافظه است.
به زبان ساده، CPU آدرس منطقی یا آدرس مجازی را تولید می کند. از منظر برنامه ای که در حال اجراست، به نظر می رسد یک آیتم در آدرس ارائه شده توسط آدرس منطقی قرار دارد. واحد حافظه آدرس فیزیکی را مشاهده می کند. علاوه بر این، امکان دسترسی به یک سلول حافظه خاص در حافظه اصلی توسط گذرگاه داده را فراهم می کند.
آدرس منطقی چیست؟
CPU آدرس منطقی تولید می کند. از منظر برنامه ای که در حال اجراست، به نظر می رسد یک آیتم در آدرس ارائه شده توسط آدرس منطقی قرار دارد. برنامه های کاربردی که روی کامپیوتر در حال اجرا هستند آدرس های فیزیکی را نمی بینند. آنها همیشه با استفاده از آدرس های منطقی کار می کنند. فضای آدرس منطقی مجموعه ای از آدرس های منطقی است که یک برنامه تولید می کند. لازم است قبل از استفاده از آدرس های منطقی به آدرس های فیزیکی نگاشت شوند. واحد مدیریت حافظه دستگاه سخت افزاری (MMU) این فرآیند نقشه برداری را مدیریت می کند.
طرح های نقشه برداری MMU
MMU از چندین طرح نقشه برداری پیروی می کند.در ساده ترین طرح نقشه برداری، مقدار موجود در ثبات جابجایی به هر آدرس منطقی تولید شده توسط برنامه های کاربردی قبل از ارسال آنها به حافظه اضافه می شود. همچنین روش های پیچیده دیگری برای تولید نقشه وجود دارد. اتصال آدرس (یعنی تخصیص دستورالعملها و دادهها به آدرسهای حافظه) میتواند در سه زمان مختلف اتفاق بیفتد.
شکل 01: آدرس منطقی و فیزیکی
اول، اگر مکانهای حافظه واقعی از قبل شناخته شده باشند، میتواند در زمان کامپایل اتفاق بیفتد، و این باعث ایجاد کد مطلق در زمان کامپایل میشود.همچنین اگر مکان های حافظه از قبل مشخص نباشد، می تواند در زمان بارگذاری اتفاق بیفتد. برای این کار، کد قابل مکان یابی مجدد باید در زمان کامپایل تولید شود. علاوه بر این، اتصال آدرس می تواند در زمان اجرا اتفاق بیفتد. این نیاز به پشتیبانی سخت افزاری برای نگاشت آدرس دارد. در اتصال آدرس زمان کامپایل و زمان بارگذاری، آدرس های منطقی و فیزیکی یکسان هستند. اما زمانی که اتصال آدرس در زمان اجرا اتفاق میافتد، این روش متفاوت است.
آدرس فیزیکی چیست؟
واحد حافظه آدرس فیزیکی یا آدرس واقعی را مشاهده می کند. این به گذرگاه داده اجازه می دهد تا به یک سلول حافظه خاص در حافظه اصلی دسترسی پیدا کند. MMU آدرس منطقی را به آدرس فیزیکی نگاشت می کند. به عنوان مثال، با استفاده از سادهترین طرح نگاشت، که ثبات جابجایی (فرض کنید که مقدار در ثبات y است) به آدرس منطقی اضافه میکند، یک آدرس منطقی از 0 تا x به یک محدوده آدرس فیزیکی y تا x+ نگاشت میشود. y.
علاوه بر این، فضای آدرس فیزیکی آن برنامه نیز نامیده می شود. همه آدرسهای منطقی باید قبل از استفاده در آدرسهای فیزیکی نگاشت شوند.
تفاوت بین آدرس منطقی و نشانی فیزیکی چیست؟
آدرس منطقی در مقابل نشانی فیزیکی |
|
آدرس منطقی آدرسی است که به نظر می رسد یک آیتم از منظر یک برنامه کاربردی در حال اجرا در آن قرار دارد. | آدرس فیزیکی یک آدرس حافظه است که به شکل یک عدد باینری در مدار گذرگاه آدرس نمایش داده می شود تا گذرگاه داده را قادر سازد به یک سلول ذخیره سازی خاص از حافظه اصلی یا یک رجیستر حافظه نگاشت شده I دسترسی پیدا کند. /O دستگاه. |
دیدن | |
کاربر می تواند آدرس منطقی یک برنامه را مشاهده کند. | کاربر نمی تواند آدرس فیزیکی برنامه را مشاهده کند. |
روش نسل | |
CPU آدرس منطقی را تولید می کند. | MMU آدرس فیزیکی را محاسبه می کند. |
دسترسی | |
کاربر می تواند از آدرس منطقی برای دسترسی به آدرس فیزیکی استفاده کند. | کاربر نمی تواند مستقیماً به آدرس فیزیکی دسترسی داشته باشد. |
خلاصه - آدرس منطقی در مقابل نشانی فیزیکی
تفاوت بین آدرس منطقی و آدرس فیزیکی این است که CPU آدرس منطقی را هنگام اجرای برنامه تولید می کند در حالی که آدرس فیزیکی مکانی در واحد حافظه است. قبل از اینکه MMU بتواند از آنها استفاده کند، همه آدرس های منطقی باید به آدرس های فیزیکی نگاشت شوند. آدرسهای فیزیکی و منطقی هنگام استفاده از زمان کامپایل و اتصال آدرس زمان بارگذاری یکسان هستند، اما هنگام استفاده از اتصال آدرس زمان اجرا متفاوت هستند.