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