مخفف TLB
Translation Lookaside Buffer
21
TLB در جداولش به آدرسهای حافظه فیزیکی اشاره میکند. TLB ممکن است مابین CPU و حافظهٔ نهانی CACHE یا بین حافظهٔ نهانی و حافظه اولیه قرار بگیرد. این بستگی به این دارد که حافظهٔ نهانی از آدرس دهی مجازی استفاده میکند و یا از آدرس دهی فیزیکی. یک راه حل عمومی برای بهینهسازی کاشههای فیزیکی آدرس دهی شده این است که جستجوی TLB را با دسترسی به کاشه به طور موازی انجام دهیم. بیتهای کم ارزش هر آدرس مجازی (برای مثال در یک سیستم حافظه مجازی با صفحات ۴ کیلوبایتی، ۱۲ بیت پایینی آدرس مجازی ) در تبدیل مجازی به فیزیکی تغییر نمییابند. در هر دسترسی به کاشه دو عملیات انجام میشود : یک شاخص درون دادهٔ کاشه ذخیره میشود سپس یک مقایسهٔ برچسبها برای خطی از کاشه که پیدا شده است. اگر کاشه طوری ساخت یافته شده بود که میشد تنها با استفاده از بیت هایی که در ترجمه عوض نمیشوند، شاخص گذاری شود، کاشه میتواند عملیات شاخص گذاری خود را در زمانی که TLB بیتهای پرارزش آدرس را ترجمه میکند انجام دهد. سپس آدرس ترجمه شده، از TLB به کاشه فرستاده میشود. کاشه یک مقایسه برچسب انجام میدهد تا تعیین کند این دسترسی به هدف اصابت کرده است و یا خطا رخ داده است.
وقتی یک خطای عدم وجود مدخل در TLB Miss به وقوع میپیوندد، در معماریهای نوین دو رویه انجام میپذیرد. با مدیریت سختافزاری TLB، خود CPU در جداول صفحه جستجو میکند تا ببیند برای آدرس حافظه مجازی مشخص شده مدخلی وجود دارد یا نه. اگر مدخلی وجود داشت، مدخل به TLB آورده میشود و دسترسی به TLB دوباره انجام میگیرد. اگر مدخلی در جدول صفحه وجود نداشته باشد یک خطای نقص صفحه رخ میدهد و سیستمعامل میبایست دادههای مورد نیاز را به حافظه بیاورد. با TLB نرمافزاری مدیریت شده، یک خطای TLB، یک استثنا "خطای TLB" تولید میکند و سیستمعامل میبایست جداول صفحه را طی کند و ترجمه را نرمافزاری انجام دهد. سپس سیستمعامل، ترجمه را در TLB بارگذاری میکند و برنامه را از دستوری که باعث خطای TLB شده است از سر میگیرد. ارسال نظر