Zasilanie układu Skylake
W Skylake architekci układu zmienili znany z procesorów Haswell i Broadwell system zasilania oparty na ISVR (zintegrowanym regulatorze napięcia). Zasilacze impulsowe przekształcające 12 V z zasilacza na napięcie zasilające poszczególne strefy funkcjonalne w SoC przeniesiono z powrotem na płytę. Rezygnacja z ISVR wywołała sporą dyskusję – zintegrowany zasilacz impulsowy miał być rzekomo wielkim krokiem naprzód w dziedzinie oszczędzania energii. Okazało się jednak, że ISVR w wielu modelach procesorów pracował ze słabą sprawnością, i na przykład w high-endowych układach desktopowych czy serwerach marnuje więcej energii, niż oszczędza. Do tego integracja analogowych obwodów w krzemie nastręczała trudności produkcyjnych. Wbrew krążącym opiniom rezygnacja z ISVR nie ma istotnego związku z możliwościami podkręcania procesorów.
Architektura Skylake, część 1. – układ graficzny 9. generacji
Architektura Intel Skylake, część 2. – rdzenie x86
Układ Skylake jest podzielony na cztery domeny zasilania, z których każdą zasila prąd o innym napięciu. Ponadto każda jest podzielona na strefy, które można osobno odłączać od zasilania. Każdy rdzeń x86 może być częściowo lub całkowicie wyłączony; odłączane są na przykład takie części, jak dekoder rozkazów (kiedy procesor wykonuje pętle zapisane w pamięci podręcznej już zdekodowanych mikrooperacji) czy segmenty pamięci podręcznej L2.
Również układ graficzny może być selektywnie odłączany od zasilania. Każdy subsegment może być wyłączony niezależnie od reszty GPU. To pozwala wyłączyć wszystkie jednostki obliczeniowe ogólnego przeznaczenia podczas odtwarzania wideo i innych zadań realizowanych przez obwody fixed function.
Taktowanie i zegary
Generowanie i rozprowadzanie sygnałów zegarowych w Skylake działa nieco inaczej niż we wcześniejszych procesorach. Jak wspominaliśmy w poprzednich artykułach, dużą zmianą widoczną dla „entuzjastów” jest rozdzielenie zegara bazowego (BCLK) i zegara taktującego łącza PCI Express i DMI.
Sygnał BCLK jest generowany w mostku południowym lub – na płytach głównych z wyższej półki – w oddzielnym generatorze zegara. BCLK można przetaktowywać niezależnie od PCI-E, co pozwoliło pozbyć się mnożników BCLK znanych z platform Ivy Bridge-E i Haswell. Ponieważ taktowanie PCI-E nie zmienia się, nie ma problemu z przetaktowaniem BCLK o więcej niż kilka procent. Generator zegara wbudowany w PCH daje możliwość regulacji BCLK w zakresie od 80 MHz do 200 MHz w krokach co 1 MHz, a stosowane przez producentów płyt głównych osobne generatory pozwalają powiększyć ten zakres do 600 MHz i granulację do 1/8 MHz (0,125 MHz).
Możliwość podkręcania za pomocą BCLK kiedyś kojarzyła się z podkręcaniem tanich procesorów, tych z zablokowanym mnożnikiem. Choć przywrócono ją w Skylake, to wyłącznie procesorom z serii K, które mają odblokowany mnożnik. Inne CPU można podkręcić maksymalnie o kilka procent – tyle, na ile pozwoli połączone z BCLK taktowanie PCI Express.
Domeny zegarowe wewnątrz procesora są zorganizowane podobnie do domen zasilania pokazanych na pierwszej stronie. Rdzenie x86, pamięć podręczna L3 oraz magistrala pierścieniowa są taktowane tak samo. W Haswellach i Broadwellach można było regulować taktowanie LLC i pierścienia niezależnie, tu zrezygnowano z tej możliwości. Prawdopodobnie możliwość szybkiego taktowania pierścienia i wolnego taktowania CPU nie przeważyła inwestycji w powierzchnię rdzenia i energię, potrzebnej na mechanizmy umożliwiające komunikację między różnie taktowanymi częściami CPU. Pozostawiono tylko uproszczone bufory do przekraczania domen zegarowych, co pozwala w najmniej wydajnych modelach Skylake ustawić taktowanie pierścienia na połowę taktowania CPU.
Układ graficzny może przełączać swoje taktowanie w krokach co 50 MHz (co połowę częstotliwości BCLK). Taktowanie GPU ustawione w programach do podkręcania lub podawane w karcie danych konkretnego procesora dotyczy wyłącznie części unslice, która to jest wspólna dla całego GPU. Jak się dowiedzieliśmy, segmenty z jednostkami wykonawczymi ogólnego przeznaczenia niemal zawsze pracują wolniej. To rozwiązanie podobne do stosowanego kiedyś w procesorach graficznych Nvidii, w których front-end procesora był taktowany z inną częstotliwością niż shadery.
W Skylake zachowano nowość wprowadzoną w Broadwellu: sterowanie poborem energii za pomocą współczynnika wypełnienia. Kiedy nie można już bardziej obniżyć napięcia, procesor zachowuje optymalne taktowanie, za to włącza się regularnie na krótkie okresy. Ta funkcja jest zarezerwowana dla rodzin procesorów Skylake-Y (do tabletów).
Regulacja taktowania i zasilania w Windows 10
Architekci Skylake współpracowali z Microsoftem nad nowym sposobem zarządzania taktowaniem i zasilaniem przez system operacyjny.
Komputery zgodne z ACPI (czyli wszystkie dzisiejsze pecety) robią to za pomocą stanów energetycznych. Każdy stan energetyczny opisuje, które części komputera są włączone i z jaką intensywnością pracują. Włączony, aktywnie używany komputer znajduje się w stanie G0 + S0 + C0, a procesor – w którymś z P-stanów. P-stany to kombinacje taktowania i napięcia; najwyższy, P0, odpowiada taktowaniu z naklejki na pudełku procesora. Inne P-stany oznaczają kolejno coraz wolniejsze taktowanie i coraz niższe napięcie zasilania.
Procesory mogą mieć więcej P-stanów niż pokazane na ilustracji cztery. W układach Intela z ostatnich lat stan P0 ma jeszcze kilka podstanów i opisuje tryby Turbo. Stan P1 to najszybsze gwarantowane przez Intela taktowanie (w warunkach krytycznych; jeśli procesor na przykład się przegrzewa, może być jeszcze niższe).
W dzisiejszym wysokiej klasy komputerze system operacyjny odczytuje tabelę P-stanów, na podstawie zapotrzebowania na moc obliczeniową wybiera najbardziej pożądany w danej chwili P-stan i prosi procesor o przestawienie się w ten stan. System operacyjny ma absolutną kontrolę nad P-stanami, z wyjątkiem podstanów P0 (czyli Turbo) oraz stanów awaryjnych (np. na wypadek problemów z chłodzeniem).
Algorytm dobierania P-stanów przez system operacyjny bierze pod uwagę scheduling (rezerwowanie cykli procesora dla poszczególnych programów) i to, czy komputer jest podłączony do sieci czy pracuje na zasilaniu akumulatorowym. System jest reaktywny, czyli czeka, aż któryś program zacznie wymagać najwyższej mocy obliczeniowej, i dopiero potem zmienia P-stan na wydajniejszy.
Speed Shift
W komputerach z procesorem Skylake i Windows 10 jest stosowany inny system regulacji, nazwany Speed Shift. Najważniejsza różnica względem typowych algorytmów polega na oddaniu częściowej kontroli nad P-stanami procesorowi.
System nie wymaga od procesora przestawienia się w konkretny P-stan. Zamiast tego określa minimalny, maksymalny i pożądany poziom wydajności. Minimalny poziom jest wybierany ze względu na jakość usługi (Quality of Service), czyli określa wydajność wystarczającą do zapewnienia płynnego wykonywania zadań na komputerze. Maksymalny poziom jest ograniczony ustawieniami zasilania (akumulator czy sieć, chłodzenie itp).
W zakresie pomiędzy minimalnym a maksymalnym dozwolonym poziomem wydajności procesor może swobodnie wybierać, w którym P-stanie się znajdzie. Wbudowany mikrokontroler zarządzający zasilaniem (PCU) ma dostęp do wielu pomiarów z wnętrza procesora i z zewnętrznych komponentów. PCU oprócz tego, że mierzy natężenie prądu płynącego przez poszczególne części procesora PCU, „widzi” potok wykonawczy w szczegółach niedostępnych dla systemu operacyjnego. To pozwala PCU określić, która część procesora może być czynnikiem ograniczającym wydajność w wykonywanym zadaniu. Na przykład, mimo że jednostki wykonawcze procesora są całkowicie zajęte, przyspieszenie taktowania CPU nie da wzrostu wydajności, jeśli to dostarczanie danych z pamięci podręcznej (cache) jest wąskim gardłem.
Szczegóły algorytmów nie zostały ujawnione przez Intela. Jak rozumiemy, jest to system bardzo podobny do zastosowanego w AMD Carrizo: tam również stopień wykorzystania poszczególnych części procesora i GPU jest monitorowany i ma wpływ na wybór stanu energetycznego. Wydaje się, że PCU w Skylake ma do dyspozycji znacznie więcej wbudowanych mierników wydajności i reaguje znacznie szybciej.
Najważniejszą zaletą nowego systemu zarządzania P-stanami jest szybkość przełączania. PCU oblicza optymalny stan energetyczny 1000 razy na sekundę. Przełączanie taktowania kosztuje czas i energię, więc nie opłaca się tego robić co 1 ms, ale jeśli w kilkunastu takich 1-milisekundowych interwałach powtarza się to samo optymalne ustawienie, PCU przełącza zasilanie i taktowanie. To znacznie szybciej, niż reaguje system operacyjny. Drugą zaletą jest zapobieganie sytuacjom, w których system operacyjny z braku dokładnych informacji zażąda nieoptymalnego stanu energetycznego. Przykładem są szczególnie sytuacje, w których jedna część systemu (np. GPU) czeka na dane z innej (GPU). System operacyjny nie wie, że mimo niskiego średniego wykorzystania CPU warto utrzymać go w stanie wysokiej wydajności, by GPU czekało na dane jak najkrócej.
Jak twierdzą inżynierowie Intela, z powodu nieujawnionych ograniczeń technicznych związanych ze schedulerem systemu operacyjnego techniki Speed Shift nie da się przenieść do systemów Linux i Windows starszych niż Vista. Z kolei przeniesienie ich do Visty i Windows 7 jest nisko na liście priorytetów, bo komputery ze Skylake mają być sprzedawane głównie z Windows 10.