بدترین بخش این است که عملیات انتظار ساختگی در حال کند کردن CPU است، همانطور که مهندس AMD، Prateek Nayak در یک پچ اخیر به هسته توضیح داد: در بارهای کاری خاص در سیستم های لینوکس، Nayak گفت: “زمان قابل توجهی در عملیات ساختگی صرف می شود. که به اشتباه به عنوان اقامت C-State به حساب می آید.” C-states یک ویژگی ACPI است که برای صرفه جویی در مصرف انرژی طراحی شده است، زمانی که CPU نیازی به بیدار ماندن ندارد، و عملیات انتظار ساختگی می تواند CPU AMD را حتی در سلسله مراتب C-state عمیق تر کند و در نتیجه بازگشت آن به عملیات کاملاً بیدار را کاهش دهد. .
در مورد پردازنده های اینتل، به نظر نمی رسد عملیات انتظار ساختگی مشکلی در عملکرد ایجاد کند، حتی اگر یک پچ فوری قبلا ارسال شده باشد.
معماری فوقالعاده موفق Zen بازار مدرن CPU را وارونه کرده است و AMD را به صدر رقابت عملکردی رسانده و به کاربران رقیبی بسیار مورد نیاز برای اجرای طولانی مدت اینتل میدهد. با این حال، یک حوزه محاسباتی وجود دارد که در آن CPU AMD هنوز از جریمه عملکرد رنج می برد – حتی اگر هیچ دلیل واقعی برای توجیه این وضعیت وجود نداشته باشد.
در حالی که از یک سیستم عامل مبتنی بر لینوکس استفاده می کنید، CPU های AMD در حالی که نباید کند می شوند. دلیل این رفتار عجیب به سال 2002 برمی گردد، زمانی که پشتیبانی از استاندارد تنظیمات پیشرفته و رابط قدرت (ACPI) برای اولین بار به هسته منبع باز اضافه شد. پیادهسازیهای قبلی ACPI مجبور بودند با برخی از مشکلات سازگاری سروکار داشته باشند، از این رو توسعهدهندگان مجبور بودند برخی رفتارهای عجیب و غریب مانند چیپستها را کمی دیرتر از آنچه انتظار میرفت به حالت بیکار در میآیند پیشبینی کنند.
کد چند دهه قدیمی برای سازگاری با ACPI دیگر نیازی به ماندن در لینوکس ندارد، بنابراین پچ Nayak احتمالاً به نسخه بعدی هسته اضافه خواهد شد – شاید حتی نسخه 6.0 هفته آینده، درست قبل از معرفی Rust عرضه شود. زبان برنامه نویسی در لینوکس 6.1 که توسط Penguin Maximo Linus Torvalds تصمیم گرفته شده است.
هنگام آزمایش نسخههای مختلف هسته (روی یک سیستم دو سوکتی Zen3)، نایاک متوجه شد که پچ او برای حذف عملیات انتظار ساختگی، بهبود قابلتوجهی در عملکرد tbench به ارمغان آورده است – از افزایش 1390 درصدی در حداقل توان MB/s به میانگین. 51 درصد افزایش نسبت به هسته پایه.
این مشکل توسعه دهندگان فوق الذکر را مجبور کرد تا یک “عملیات انتظار ساختگی” را در هسته معرفی کنند، و قبل از اینکه CPU بتواند با دستور STPCLK# به طور کامل متوقف شود، یک عملیات خواندن اطلاعات اضافی را مجبور کرد. عملیات انتظار ساختگی در سال 2002 به لینوکس اضافه شد و هنوز هم وجود دارد، حتی اگر پردازندههای مبتنی بر معماری Zen دیگر نیازی به راهحل ندارند.
چرا مهم است: هسته لینوکس شامل یک ترفند قدیمی برای مقابله با ناسازگاری های احتمالی در اجرای اولیه ACPI است. امروزه، این ترفند مورد نیاز نیست و فقط با جریمه کردن عملکرد، اوضاع را برای CPU های AMD بدتر می کند. یک پچ باید به زودی بیاید.