غوغای ARM در لینوکس؛ تلاش برای انفجار سرعت پردازندههای غولپیکر با تکنیک TLBID

تا حالا به این فکر کردین که پردازندههای سرور با کلی هسته پردازشی چطوری مثل ساعت کار میکنن؟ شرکت ARM دست به کار شده و داره یه قابلیت خفن به اسم TLBID رو به لینوکس میاره تا سرعت پردازندههای چند هستهای رو جوری بالا ببره که انگار دارن تو فرمول یک مسابقه میدن! این یعنی یه تحول اساسی برای سرورهای قدرتمند آینده.
داستان TLBID چیه و قراره چه معجزهای بکنه؟
بذارین قضیه رو خیلی ساده براتون باز کنم. سیستمعامل برای اینکه بفهمه فایلها و برنامهها کجای حافظه رم قرار دارن، از یه حافظه خیلی سریع به اسم Translation Lookaside Buffer یا همون TLB استفاده میکنه. تا همین الان، وقتی یه تغییری توی حافظه ایجاد میشد، سیستم مجبور بود کل سیستم رو خبر کنه و کل این حافظه رو پاکسازی (Invalidation) کنه؛ یه جورایی مثل این میمونه که برای یه اشتباه کوچیک تو یه کلاس درس، به کل مدرسه بگیم از اول مشق بنویسن!
nn

اما با تکنولوژی جدید TLBID که شرکت ARM داره روی پچهای جدید Kernel لینوکس براش کار میکنه، دیگه خبری از این بزنوببند سراسری نیست. حالا دستورات پاکسازی حافظه فقط و فقط به همون هستههایی فرستاده میشه که برنامه مورد نظر واقعاً داره روش اجرا میشه. اینجوری کلی از کارهای اضافهی سیستم کم میشه و راندمان پردازندههای غولپیکر ابری و سروری سر به فلک میکشه.
پیشنیازها و آینده این تکنولوژی در دنیای متنباز
البته که این قابلیت خفن هنوز اول راهشه. هنوز اعداد و ارقام رسمی از میزان افزایش سرعت منتشر نشده و از اونجایی که این قابلیت هنوز رسماً وارد راهنمای معماری ARM نشده، باید کمی صبر کنیم تا نمونههای واقعیاش رو توی سختافزارها ببینیم. اما مهندسا از الان دارن پایههای نرمافزاریاش رو میچینن.
علاوه بر تغییراتی که داره روی Kernel لینوکس اعمال میشه، استفاده از این قابلیت جذاب به ابزارهای دیگهای مثل نسخههای جدیدتر LLVM یا ابزارهای GNU Binutils هم وابسته است تا بتونن دستورات جدید رو هضم کنن. اگه دوست دارید ریزهکاریهای فنی این پروژه رو دنبال کنید، بحثهای داغ توسعهدهندهها رو میتونید از طریق مایلیلست کرنل لینوکس پیگیری کنید.



