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