Co oznacza „podkręcanie” w tym artykule? Tym razem nie chodzi o przyspieszenie komputera, żeby na co dzień mieć wyższą wydajność. W tym wypadku robię to dla sportu. Chodzi wyłącznie o poznanie granicy sprawnego działania procesora oraz o osiągnięcie wysokich wyników w benchmarkach.
Przyspieszenie Core i5-8600K do granic możliwości wymaga kilku egzotycznych metod. By je zastosować, musiałem się wcześniej przygotować.
Na wideo jest to samo co w tekście – jeśli wolisz czytać, czytaj dalej!
Pokażę je jako ciekawostki, żeby rozbudzić Wasze zainteresowanie i zachęcić do poszerzania horyzontów. Celowo nie będę opisywał każdego kroku pokazanych modyfikacji i technik. Większość z nich wymaga dokładnego zapoznania się z tym, co robimy. Gotowy przepis gwarantuje tylko rozczarowanie, jeśli wystąpią kłopoty. Jeżeli ktoś ma dość zdolności poznawczych i cierpliwości, żeby wykonać wszystkie potrzebne kroki, nie będzie również miał problemu ze znalezieniem dokładniejszych instrukcji.
Redakcja PCLab.pl nie rekomenduje żadnej z przedstawionych modyfikacji. Wszelkich przeróbek dokonujecie na własną odpowiedzialność. Modyfikując płytę główną lub procesor rezygnujecie z gwarancji i wsparcia producenta. |
Dodatkowe zasoby
Oto kilka godnych uwagi stron. Redakcja PCLab.pl nie odpowiada za przedstawione na nich treści i nie sugeruje, że podane tam informacje są prawdziwe.
- Delidding CPU na wesoło – poradniki i pomoc – wątek na forum PCLab.pl
- Recover from failed BIOS flash using Raspberry PI – programowanie UEFI za pomocą RaspberryPi – wątek na forum Win-Raid (ang.)
- Poradnik: modyfikacja BIOS-u – dodawanie obsługi procesorów z rodziny Coffee Lake – wątek na forum PCLab.pl
Core i5-8600K bez IHS
Ekstremalne podkręcanie większości procesorów Intela wyprodukowanych w ciągu ostatnich pięciu lat trzeba zacząć od... nieodwracalnej, pozbawiającej nas gwarancji na procesor modyfikacji. Chodzi o usunięcie IHS-a – zintegrowanego rozpraszacza ciepła.
IHS osłania jądro przed uszkodzeniami mechanicznymi, jest niezbędny do zamontowania procesora w podstawce i odprowadza ciepło z jądra. Więcej informacji znajdziecie tutaj: Podkręcanie Ivy Bridge – czy bez IHS-a jest lepiej?.
W procesorach Ivy Bridge, Haswell, Broadwell, Skylake, Kaby Lake i Coffee Lake interfejsem termicznym pomiędzy jądrem a IHS-em jest pasta termoprzewodząca. Ta zastosowana przez Intel ma pewną wadę, nieistotną w typowym użytkowaniu: w bardzo niskiej temperaturze zamarza i staje się krucha. Dopóki pasta jest elastyczna, dobrze zwilża obie powierzchnie: IHS i jądro, i dobrze przewodzi ciepło. Kiedy staje się krucha, po nagłym skoku wydzielania ciepła (np. wywołanym uruchomieniem benchmarka), zamiast rozszerzać się razem z powierzchnią, do której przylega, pęka, czasem z głośnym trzaskiem. Pozostaje warstwa skostniałej pasty przylegająca do jednej powierzchni oddzielona cienką warstwą powietrza od drugiej. Ciepło nie jest dłużej efektywnie odprowadzane. Taką sytuację można wykryć, obserwując wskazania temperatury procesora w UEFI: jest ono zbliżone do zera stopni, choć temperatura kontenera na ciekły azot jest ciągle bliska –180 stopni.
Dlatego żeby wykorzystać ekstremalne chłodzenie, trzeba usunąć IHS i wymienić fabryczną pastę Intela na jedną ze sprawdzonych niepękających past:
- Gelid GC Extreme
- Thermal Grizzly Kryonaut
- Kingpin Cooling KPx
- Noctua NT-H1
Popularną metodą usuwania IHS jest użycie specjalnego przyrządu, złożonego z dwóch głównych części przesuwających się względem siebie. Jedna część jest dopasowana kształtem do IHS-a, druga – do laminatu procesora. Za pomocą śruby przesuwa się je względem siebie o kilka milimetrów, aż klej przytwierdzający IHS pęknie. Takie przyrządy można kupić lub wydrukować na drukarce 3D. Ja wolę dawną metodę, stosowaną już w czasach Athlonów 64: żyletkę. Przełamaną na pół żyletkę okleiłem z jednej strony papierem, żeby chronić palce.
Ta metoda wymaga cierpliwości i doświadczenia. Nie polecam usuwania IHS-a w ogóle, ale szczególnie nie polecam robienia tego żyletką.
Po wymianie pasty można z powrotem przykleić IHS, żeby ułatwić montaż procesora, ale przy ekstremalnym podkręcaniu zwykle rezygnuje się z tego kroku, żeby zachować dostęp do pasty pod IHS-em.
Płyta główna: coś do podkręcania
Do jakiegokolwiek podkręcania procesorów LGA1151 potrzebna jest płyta z chipsetem serii Z. Dobrze, żeby miała rozbudowany układ zasilania i bogate możliwości konfiguracji napięć.
Do tej pory, jeśli chodzi o podkręcanie procesorów LGA1151, królowały płyty:
- Asus Maximus Apex (IX, X, XI)
- ASRock Z170M OC Formula
- Gigabyte Z370X SOC Force LN2 (niedostępna w handlu)
- Evga Z390 Dark (niedostępna w Europie)
Dwie pierwsze kategorie zdecydowanie dominują – pozostałych po prostu nie można kupić albo można je kupić dopiero od niedawna. Przy projektowaniu tych płyt włożono bardzo wiele wysiłku w opracowanie cech zupełnie zbędnych w codziennym użytkowaniu: możliwość osiągnięcia bardzo wysokiego taktowania pamięci, niezakłócone działanie i uruchamianie komputera w bardzo niskiej temperaturze, mechanizmy ułatwiające wystartowanie komputera po nieudanej próbie podkręcania. Ponadto wszystkie wymienione powyżej płyty mają tylko dwa gniazda RAM-u – po jednym na kanał. To ułatwia optymalne poprowadzenie ścieżek pomiędzy procesorem a RAM-em, ale oczywiście uniemożliwia zainstalowanie dużej pojemności pamięci.
Niestety, nie dysponowałem żadną z tych płyt. Zamiast tego wybrałem niemal równie dobrą, chociaż bardzo mało popularną płytę Asus Maximus IX Extreme.
Jest bardzo mało popularna, bo to pewnego rodzaju edycja limitowana – wyprodukowano mało tych płyt i szybko zniknęły one ze sklepów. Płyta była sprzedawana w komplecie z blokiem wodnym typu full cover wyprodukowanym przez Bitspower. Ten blok chłodzi jednocześnie procesor i układy zasilania wokół podstawki procesora.
W innych okolicznościach byłoby to kłopotliwe – tej płyty nie powinno się używać inaczej niż z własnym zestawem chłodzenia wodnego. Mnie to jednak bardzo odpowiada. Płytę można bardzo łatwo pozbawić wszystkich dodatków niepotrzebnych do ekstremalnego podkręcania. Po zdjęciu bloku wodnego, radiatora nośnika M.2, osłony portów I/O oraz wymontowaniu karty sieciowej WiFi/Bluetooth pozostało tylko to, co niezbędne:
Dodatkowe chłodzenie układu zasilania procesora nie jest potrzebne − solidny laminat z dużą ilością miedzi przewodzi ciepło na tyle dobrze, że chłodzenie procesora do ujemnej temperatury utrzyma okolice podstawki procesora w chłodzie.
Coffee Lake na płycie Z170/Z270 – modyfikacje UEFI
Maximus IX Extreme to płyta z chipsetem Z270 wydana w tym samym czasie, co procesory Kaby Lake. Takie płyty nie obsługują procesorów Core 8. generacji, takich jak Core i5-8600K. Z jakichś powodów procesory Core 8000 i Core 9000 wymagają nieco innej podstawki, kompatybilnej mechanicznie i z taką samą liczbą pól kontaktowych, ale z innym rozmieszczeniem sygnałów.
Architektura platform LGA1151v1 i LGA1151v2 (nieoficjalne nazwy – w nomenklaturze Intela obie podstawki nazywają się tak samo, ale nie są kompatybilne...) jest na tyle podobna, że można w domowych warunkach zmodyfikować płytę i procesor i uruchomić procesor Coffee Lake na płycie głównej z chipsetem serii 100 lub 200.
Po pierwsze, trzeba zmienić UEFI płyty głównej tak, żeby umożliwiało uruchomienie nowego procesora. Po drugie, trzeba doprowadzić do elektrycznej kompatybilności między dwoma wersjami podstawki LGA1151, izolując i przesuwając niektóre sygnały.
O co w tym chodzi?
Wymiana mikrokodu
Mikrokod to oprogramowanie odpowiadające za podstawowe funkcje procesora, między innymi kodowanie niektórych instrukcji x86. Podczas uruchamiania komputera mikrokod jest ładowany ze specjalnego obszaru w UEFI do ulotnej pamięci wewnątrz procesora. W wielordzeniowym procesorze mikrokod musi być załadowany do każdego rdzenia. Treść mikrokodu jest zaszyfrowana – między innymi po to, żeby utrudnić lub uniemożliwić jego modyfikację. Do załadowania jest w sumie kilka−kilkanaście kilobajtów. Część (ale nie całość) mikrokodu może być aktualizowana również w trakcie działania komputera, np. w trakcie ładowania systemu operacyjnego. Dzięki temu mechanizmowi systemy Windows i Linux mogą zabezpieczyć niektóre procesory przed atakami na wykonywanie instrukcji z wyprzedzeniem – podczas każdego ładowania systemu mogą załadować dostarczoną przez Intela aktualizację mikrokodu.
Jeśli UEFI płyty głównej nie zawiera odpowiedniego mikrokodu, procesor wyłączy się prawie natychmiast po włączeniu maszyny. Na płytach głównych z wyświetlaczem diagnostycznym zobaczymy tylko przez chwilę kod 00. Dodanie mikrokodu dla nowych procesorów do starszej wersji UEFI jest najważniejszą częścią przeróbki. Na niektórych płytach głównych kość pamięci UEFI ma na tyle ograniczoną pojemność, że dodanie jednego nowego segmentu mikrokodu wymaga usunięcia jednego z poprzednich, co oznacza pozbawienie płyty kompatybilności z pewnymi starszymi procesorami. To jednak nie dotyczy wybranej przeze mnie płyty.
Wymiana BIOS-u iGPU
Układ graficzny wbudowany w procesor wymaga własnego oprogramowania, podobnie jak osobne karty graficzne mają własny BIOS. To oprogramowanie także jest zapisane w UEFI, i też jest potrzebne do uruchomienia układu graficznego. Żeby uruchomić Coffee Lake na starszej płycie, trzeba również wymienić ten tzw. vBIOS na nową wersję obsługującą zintegrowane GPU Coffee Lake.
Wymiana firmware'u ME
Management Engine (ME) to mikrokontroler (a nawet system mikrokontrolerów) wbudowany w chipsety Intela i niezbędny do uruchomienia komputera. ME ma całkowitą kontrolę nad zawartością pamięci operacyjnej, przestrzenią IO... słowem, nad całym komputerem. Sercem ME jest co najmniej jeden stosunkowo mały, niskoenergetyczny procesor o zestawie instrukcji x86 pracujący pod kontrolą przerobionego przez Intela systemu MINIX. Ten system i reszta oprogramowania realizującego funkcje ME (m.in. większość technik związanych z bezpieczeństwem albo odtwarzaniem zaszyfrowanych multimediów) są przechowywane w miniaturowym systemie plików, który również jest częścią pakietu UEFI i jest zapisany w pamięci flash na płycie głównej.
Uruchomienie procesora Coffee Lake na płycie głównej ze starym chipsetem jest możliwe tylko w połączeniu z jedną ze starszych wersji firmware'u ME wydaną przed październikiem 2018. Kolejne wersje uniemożliwiają działanie takich nieautoryzowanych kombinacji.
Automatyczne narzędzia
Wszystkie te modyfikacje wykonuje się za pomocą wielu narzędzi programowych. Część z nich jest otwartoźródłowa i została opracowana dzięki inżynierii wstecznej albo publicznie dostępnym informacjom. Część nie jest dostępna publicznie i trafiła do nieoficjalnej dystrybucji dzięki „przeciekom” – nie można liczyć na wsparcie ani aktualizacje, a możliwość wykorzystywania ich przez postronne osoby nie jest jasna ze względu na licencję.
Ponieważ cała procedura jest skomplikowana, ale niewiele różni się pomiędzy różnymi płytami, entuzjaści przeróbek UEFI mogli stworzyć narzędzia automatyzujące cały proces: CoffeeTime oraz coffeeLake MOD tool (nietrudno je znaleźć w internecie). To skrypty przeprowadzające wszystkie etapy modyfikacji jeden po drugim i wymagające minimalnej ingerencji ze strony użytkownika. Na filmie z pierwszej strony możecie zobaczyć, że jedno z tych narzędzi wymaga tylko uruchomienia i dwukrotnego wybrania pomiędzy dwoma przedstawionymi opcjami.
Modyfikacja procesora
Ostatnie, co jest konieczne do uruchomienia nowego procesora na płycie poprzedniej generacji, to połączenie i odizolowanie niektórych styków w podstawce. W zależności od płyty głównej robi się to na różne sposoby.
Przynajmniej dwa pola stykowe trzeba odizolować. Według wskazówek projektowych Intela nie powinny one być podłączone na płycie głównej – jednak na wielu płytach są podłączone i po zainstalowaniu niewłaściwego procesora przepływa przez nie zbyt duży prąd. Procesor i płyta działają, ale może dojść do zniszczenia tych styków w podstawce, dlatego dla bezpieczeństwa izolujemy te pola.
Z kolei dwa pola stykowe trzeba połączyć. Jedno z nich służy w starszych płytach do wykrywania, czy w podstawce jest procesor. Jeśli jest zwarte do masy, to układ Super I/O na płycie głównej uznaje, że zainstalowano procesor. W procesorach Coffee Lake to pole nie jest podłączone. Żeby oszukać płytę główną, można połączyć je z sąsiednim, które w nowych procesorach jest zwarte do masy. Ja wykorzystałem malutki kawałek folii aluminiowej przyklejony do procesora kroplą lakieru do paznokci. Dzięki temu płyta główna wykrywa właściwy sygnał we właściwym miejscu, a modyfikację można łatwo usunąć za pomocą rozpuszczalnika. Zamiast modyfikować procesor, można oszukać ten sygnał, zwierając go na płycie głównej w pobliżu układu Super I/O.
Programowanie UEFI od kuchni
Zmodyfikowane UEFI trzeba jeszcze zaprogramować − jego treść musi się znaleźć w pamięci flash na płycie głównej, skąd jest ładowana podczas uruchamiania komputera. Zwykle do programowania UEFI wykorzystujemy:
- program do aktualizacji działający w Windows – nikomu nie polecam tej opcji.
- wbudowany w UEFI program do aktualizacji – najwygodniejsze rozwiązanie. Niemal wszystkie współczesne płyty główne mają odpowiednią funkcję.
- program do aktualizacji działający w systemie DOS – wymaga bootowalnej pamięci USB z systemem DOS, którą łatwo zrobić przy użyciu programu Rufus. To jedyna możliwa procedura w przypadku niektórych płyt głównych.
- USB flashback – metoda spopularyzowana wiele lat temu przez płyty Asusa serii ROG, dziś dostępna w płytach z najwyższej półki wielu marek (m.in. we wszystkich płytach do procesorów AMD Threadripper). Wykorzystuje osobny mikrokontroler podłączony do jednego z portów USB, który odczytuje dane z pamięci USB i programuje je do pamięci flash na płycie głównej. Wymaga pamięci USB i nazwania pliku z obrazem UEFI w określony sposób. Działa nawet bez procesora i pamięci, więc pozwala zaktualizować UEFI w sytuacji, kiedy obecna wersja nie obsługuje żadnego z dostępnych dla nas procesorów.
W każdej z tych metod posługujemy się dostarczonym przez producenta programem, który sprawdza poprawność zapisywanych danych i ich zgodność z daną płytą. Większość z tych programów ma też pewne zabezpieczenia, które mają uchronić użytkownika przed błędem albo potencjalnym złośliwym działaniem: nie możemy za ich pomocą zaprogramować na płycie starszej wersji UEFI niż obecna ani zaprogramować obrazu UEFI przygotowanego dla innego modelu.
Spośród tych metod USB flashback oraz narzędzie działające pod kontrolą DOS mają potencjalnie najmniej ograniczeń. W tej pierwszej metodzie mikrokontroler programujący pamięć flash jest zbyt prosty (a jego własne oprogramowanie musi być uniwersalne), żeby mógł przeprowadzać skomplikowaną weryfikację zawartości UEFI. W tej drugiej metodzie można się czasami posłużyć nieudokumentowanymi opcjami programów aktualizujących, żeby zaprogramować nawet niezgodną wersję UEFI.
Jednak nawet te ostatnie metody nie zawsze pozwalają zmienić całą zawartość pamięci flash UEFI. Nowoczesne układy serial flash mają czasem funkcję umożliwiającą stworzenie chronionego obszaru, którego nie da się wyczyścić ani zapisać bez ingerencji sprzętowej. Z tego powodu na płytach głównych dla procesorów Intela nie da się w programowy sposób przywrócić starszej wersji oprogramowania Management Engine, o którym pisaliśmy na poprzedniej stronie. Aktualizacja UEFI w żaden programowy sposób nie pozwala na uruchomienie Core i5-8600K na płycie Maximus IX Extreme.
Programowanie UEFI przez SPI
Żeby ominąć ograniczenia lub zaprogramować UEFI na płycie, która nie działa (np. po aktualizacji UEFI przerwanej z powodu przerwy w zasilaniu), musimy się posłużyć najbardziej niskopoziomową metodą: skomunikować się bezpośrednio z pamięcią flash przy użyciu programatora.
Pamięć flash to proste układy scalone bardzo popularne w wielu urządzenia elektrycznych i elektronicznych. We współczesnych komputerach treść UEFI jest przechowywana w układach serial flash, z którymi można się komunikować za pomocą łącza szeregowego SPI. Programatory serial flash są niedrogie i łatwo dostępne; można też użyć (teoretycznie) dowolnego urządzenia, które ma programowalne przez użytkownika łącze SPI. Ja wykorzystałem jednopłytkowy komputer RaspberryPi. Można też wykorzystać prawie każde Arduino lub kompatybilną płytkę.
Najłatwiej zaprogramować pamięć flash, jeśli jest to układ w obudowie DIP-8 w podstawce. Wystarczy wyjąć pamięć, umieścić w płytce stykowej i podłączyć do programatora. Jeśli pamięć jest przylutowana, to na wielu płytach można wykorzystać header ISP (in-system programming – programowanie urządzenia już zamontowanego w większym systemie). Najbardziej kłopotliwe jest programowanie płyt, na których pamięć jest przylutowana i nie ma headera do programowania (większość płyt Gigabyte) lub pamięć jest w podstawce, ale w obudowie typu SO8 (niektóre płyty ASRocka). W takim przypadku trzeba mieć klips pomiarowy, który pozwala tymczasowo podłączyć sygnały do przylutowanego lub luźnego układu. Taki klips kosztuje kilkadziesiąt złotych (wystarczy wyszukać „klips SO-8” w ulubionym portalu aukcyjnym albo porównywarce cen) i wymaga pewnej ilości wolnego miejsca wokół przylutowanego układu.
Znalazłem headery ISP na wszystkich płytach MSI i Asusa, jakie mam do dyspozycji i na których pamięć flash jest przylutowana. To znacznie ułatwiło programowanie. Jak zawsze w przypadku prac elektronicznych, trzeba mieć pewność, co się robi. Żeby poznać schemat headera ISP, trzeba prześledzić połączenia z pamięcią flash – nie można zakładać, że znalezione w internecie schematy są poprawne, jeśli opisują inną płytę! Na przykład na płytach MSI rozmieszczenie sygnałów w headerze ISP w ostatnich latach zmieniło się co najmniej raz.
Będzie też potrzebna ważna informacja z karty katalogowej układu flash (albo wartość zmierzona multimetrem na włączonej płycie) − napięcie zasilania układu. Na przykład na płycie MSI X370 Titanium Gaming (i wielu innych płytach AM4) zastosowano układ Macronix MX25U12873F o napięciu zasilania 1,8 V. Nie można go zasilać ani programować bezpośrednio z Raspberry Pi ani płytek Arduino bez konwertera poziomów.
Na płytach Asusa Maximus IX Extreme, Prime H310M-K i Prime B350-Plus zastosowano układ Winbond W25Q128FV zasilany napięciem 3,3 V. Wszystkie trzy płyty mają taki sam header ISP.
Dodatkowo na płycie Maximus IX Extreme obok headera ISP umieszczono zworkę umożliwiającą wybranie jednej z dwóch kości flash. W moim przypadku konieczne było zaprogramowanie obu tą samą treścią.
Do programowania wykorzystałem zainstalowany na Raspberry Pi program flashrom. Można go użyć również w połączeniu z podłączonym do peceta Arduino pełniącym rolę programatora.
Pokazana płytka stykowa nie jest potrzebna – tu wykorzystałem ją tylko po to, żeby nie musieć robić dodatkowego zestawu kabli z żeńskimi zakończeniami po obu stronach. Pełen cykl programowania (łącznie z weryfikacją) trwał około 20 minut.
To działa, i nawet się podkręca!
Zmodyfikowany procesor działa na zmodyfikowanej płycie bez żadnych kłopotów. Nie ma problemu z mechanizmami oszczędzania energii, z trybem uśpienia, z ustawianiem napięcia. Jedyny problem sprawia podkręcanie procesora: w UEFI płyty głównej mamy do dyspozycji progi turbo dla 1, 2, 3 i 4 obciążonych rdzeni. Podczas obciążenia 5 lub 6 rdzeni taktowanie będzie miało domyślną wartość. Po prostu podczas opracowywania Maximusa IX Extreme nikomu nie przyszło do głowy, że może się przydać 6 pól konfiguracyjnych do ustawiania mnożnika... Na szczęście można to naprawić, wykorzystując oprogramowanie Intel XTU albo Asus TurboV do ustawiania mnożnika już po uruchomieniu Windows.
Postawiłem sobie dość skromny cel, który wydawał się w zasięgu niezależnie od możliwości tego egzemplarza Core i5-8600K: poniżej 5 minut w SuperPi 32M. To by wymagało taktowania nieco ponad 6200 MHz. Gdyby procesor okazał się przynajmniej tak dobry, planowałem sprawdzenie wielowątkowych benchmarków.
Niestety, ten Core i5-8600K nie był złotym biletem z loterii krzemowej. Około 6200 MHz w mało wymagających benchmarkach, takich jak Aquamark3, okazało się niemal granicą jego możliwości.
Na wideo możecie zobaczyć Aquamarka: to bardzo krótki i efektowny benchmark, do którego mam sentyment. Wynik w Aquamarku na współczesnym sprzęcie zależy w głównej mierze od jednowątkowej wydajności procesora.
Po tym małym rozczarowaniu postanowiłem poświęcić dalsze wysiłki podkręcaniu zabawniejszego procesora: Athlona 200GE, o którym napiszę więcej wkrótce.