Przez lata optymalizacja systemów operacyjnych kręciła się wokół taktowania, liczby rdzeni i coraz sprytniejszych algorytmów planowania zadań. Cache było gdzieś obok i to wreszcie zmienia się na korzyść „linuksiarzy”. Wiemy obecnie, że klucz leży nie tylko w samych rdzeniach i taktowaniu procesora, lecz w tym, jak system rozumie i wykorzystuje pamięć podręczną procesora. Wtem, wkracza mechanizm Cache Aware Scheduling.

Cache Aware Scheduling to rozwiązanie, w ramach którego system operacyjny nie traktuje procesora jak jednorodnej puli rdzeni, lecz bierze pod uwagę rzeczywisty układ i obciążenie pamięci cache. Chodzi o jedno, by wykonywać zadania tam, gdzie dane już są — albo gdzie najłatwiej je tam utrzymać.

Każdy przeskok danych między rdzeniami czy blokami cache to strata czasu i energii. Klasyczny scheduler widzi wątek, widzi wolny rdzeń i tam go wysyła. Scheduler, który bierze pod uwagę strukturę pamięci cache działa inaczej: sprawdza który rdzeń ma dostęp do odpowiedniej pamięci L3, gdzie znajdują się powiązane dane, czy przeniesienie zadania nie wywoła lawiny niepożądanych przeskoków. To trochę jak sygnalizacja świetlna z prostym systemem czasowym oraz taka, która bierze pod uwagę aktualne obłożenie: nie tylko na tej konkretnej krzyżówce. 

Windows robi to od dawna

Tu pojawia się ciekawy paradoks. Zazwyczaj kojarzymy Linuxa jako „ten system, w którym innowacyjne rozwiązania proszybkościowe wyprzedzają Redmond od lata”. Okazuje się, że Microsoft już w Windows 10 wprowadził mechanizmy związane z Cache Aware Scheduling, a Windows 11 je rozwija. System potrafi współpracować ze sterownikami chipsetu, analizować topologię CPU i przydzielać zadania w sposób bardziej przyjazny dla pamięci cache.

Dobrym przykładem są tu procesory AMD Ryzen X3D. Windows 11 potrafi rozpoznać, który CCD ma dostęp do dodatkowej warstwy 3D V-Cache i kierować tam zadania najbardziej wrażliwe na opóźnienia w dostępie do pamięci — np. gry. Dodatkowo sterowniki AMD zawierają własny mechanizm optymalizacyjny, który podpowiada systemowi, gdzie dane zadanie będzie „najtańsze” pod kątem obliczeń.

Czytaj dalej poniżej "Linux dla hakerów" z nowościami. Co znajduje się w nowej wersji? Zmienili nazwę funkcji w Linuksie. Powód jest niecodzienny

Microsoft niemal nie komunikuje tego wprost, a szkoda. Brakuje w tym zakresie dokumentacji, szczegółowych opisów działania, brak nawet jasnego nazewnictwa w interfejsie użytkownika. CAS istnieje, działa, ale wiele osób najpewniej by nawet nie podejrzewało, że on tam jest i funkcjonuje.

Linux dopiero startuje z CAS

W świecie Linuksa sprawa wygląda inaczej. Niedawne poprawki do jądra potwierdzają, że Cache Aware Scheduling trafia do systemu w jawnej już formie. Co ważne — z mierzalnymi efektami. W testach niektórych obciążeń wzrost wydajności sięga nawet 44%.

Na razie mechanizm dotyczy głównie ostatniego poziomu cache procesora. Próby rozszerzenia tej logiki na pamięć RAM nie przyniosły dodatkowych korzyści — koszt przeskoku”do RAM-u jest po prostu zbyt wysoki, by scheduler mógł go sensownie kompensować.

Dlaczego nowoczesne procesory tak na tym zyskują?

Dzisiejsze procesory to już bardzo wyrafinowane komponenty. Zwyczajnie, są to układy z wieloma blokami obliczeniowymi, różnymi poziomami cache i często nierównomiernym dostępem do zasobów. W takich warunkach klasyczny scheduler byłby tutaj rozwiązaniem na miarę kierowcy ciężarówki, który dostaje do poprowadzenia Sokoła Millenium.

Ryzeny z 3D V-Cache są wręcz stworzone pod CAS. Dodatkowa pamięć L3 działa jak ogromny bufor na dane, ale tylko wtedy, gdy zadania faktycznie z niej korzystają. Jeśli scheduler przerzuca wątki między CCD bez refleksji, cała przewaga znika. CAS sprawia, że architektura sprzętowa i system operacyjny zaczynają stanowić jedność. I dobrze!

CAS w szerszym kontekście

Microsoft równolegle rozwija inne mechanizmy wydajnościowe: natywne wsparcie NVMe w Windows 11 (z przyrostem przepustowości sięgającym w skrajnych przypadkach niemal 80%) czy sprzętowo akcelerowany BitLocker, który odciąża CPU. Cel to mniej marnowanych cykli, mniej zbędnych transferów danych i więcej realnej pracy: to wszystko ma wspomagać wydajność konfiguracji.

Linux kroczy zaś podobną drogą, choć z innym tempem i inną filozofią. Tam zmiany są wolniejsze, ale często bardziej transparentne i nierzadko prześcigające komercyjnego konkurenta. Użytkownik może dowiedzieć się o tym z łaty, a nawet przeczytać commity i zrozumieć cały mechanizm. O ile w ogóle tego chce. 

Czytaj również: „Linux dla hakerów” z nowościami. Co znajduje się w nowej wersji?

Zyskują na tom gry, kompilatory, praca na dużych zbiorach danych, a nawet codzienny multitasking — wszędzie tam cache ma znaczenie. Stary laptop nagle stanie się z automatu rakietą, ale w nowoczesnym sprzęcie CAS pozwala wreszcie wykorzystać potencjał, który drzemał tam od dawna. Ale dopiero teraz Linux dostaje prawdziwy wiatr w skrzydła.