پیشوندهای تازهٔ WBINVD از یه شرکت ناشناس x86
خلاصهٔ کاملتر
به نوشتهٔ Michael Larabel تو Phoronix، کارشناس شناختهشدهٔ x86 یعنی Christian Ludloff تو لیست ایمیل کرنل لینوکس جزئیات تازهای دربارهٔ پیشوندهای دستور WBINVD منتشر کرده. WBINVD مخفف Write Back and Invalidate Cache هست، یعنی دستوری که محتوای کش رو به حافظه برمیگردونه و بعد کش رو بیاعتبار میکنه. نکتهٔ خبر اینه که یه شرکت غیر از اینتل و AMD داره روی این دستور از پیشوندهای تازه استفاده میکنه.
چهارتا از این پیشوندها نقش hint دارن؛ یعنی به پردازنده میگن کدوم بخش از کش رو بیخیال بشه. 0x67 کش دستورالعمل L0i/L1i رو رد میکنه، 0x66 کش دادهٔ L0d/L1d رو، 0xF3 خود invalidation رو و 0xF2 کش آخرین سطح یا LLC رو. رفتار INVD بدون تغییر میمونه. برای کسی که کد سطح پایین یا درایور مینویسه این یعنی میشه هزینهٔ سنگین پاککردن کل کش رو محدودتر کرد.
شش پیشوند دیگه هم به عنوان hintهای مخصوص پیادهسازی تعریف شدن و با نام سگمنتها شناخته میشن: 0x26 برای ES، 0x2E برای CS، 0x36 برای SS، 0x3E برای DS، 0x64 برای FS و 0x65 برای GS. تو متن اومده که این ششتا روی هم تا ۶۴ رفتار مختلف رو ممکن میکنن و معنیشون به پردازنده بستگی داره؛ یه پیادهسازی ممکنه باهاشون سطح کش L1 یا L2 یا L3 رو هدف بگیره و یکی دیگه رفتار برنامهپذیر تعریف کنه.
هر ده پیشوند رو میشه با هم ترکیب کرد و نتیجه یه دستور تا ۱۲ بایتی میشه. پیام اصلی به توسعهدهندههای کرنل اینه که این کدها از سال ۲۰۲۵ در استفادهٔ فعال هستن، پس نباید برای چیز دیگهای بازتعریف بشن.
این اولین بار نیست که چنین چیزی سر و کلهاش پیدا میشه. مهر پارسال هم پستی دربارهٔ تخصیص opcode و CPUID و MSR از همین نهاد ناشناس منتشر شد و بعدش پیادهسازیهای ۱۶ و ۳۲ تایلی AMX مطرح شد که تو محدودهٔ محصولات فعلی اینتل و AMD نمیگنجه. Larabel میگه هویت این شرکت هنوز روشن نیست، ولی چون چند هفته پیش خبر رسید استارتاپی به اسم RosaicLabs به طراحی پردازندههای Atom اینتل دسترسی پیدا کرده، این احتمال مطرح شده که همون باشه. هیچ تأییدی در کار نیست.
نکات کلیدی:
- چهار hint اصلی: 0x67 رد کش دستورالعمل، 0x66 رد کش داده، 0xF3 رد invalidation و 0xF2 رد کش LLC
- شش hint مخصوص پیادهسازی با پیشوندهای سگمنت 0x26، 0x2E، 0x36، 0x3E، 0x64 و 0x65 که تا ۶۴ رفتار رو پوشش میدن
- ترکیب هر ده پیشوند یه دستور تا ۱۲ بایتی میسازه
- این کدها از سال ۲۰۲۵ در استفادهٔ فعال هستن و نباید بازتعریف بشن
- هویت شرکت نامشخصه و RosaicLabs فقط یه حدس تأییدنشدهست




