Witam
Pytanie chciałbym skierować między innymi do @Gynvael Coldwind gdyż poruszyłeś temat mikrokodów na swojej prelekcji "Programowanie a hacking".
Zainstalowałem sobie GNU/Linux Mint 18 Cinnamon tylko tym razem bez własnościowego oprogramowania.
Zaglądając do menadżera sterowników moim oczom ukazał się taki widok
Chce zadać kilka pytań odnośnie tych mikrokodów i dwukrotnie podkreślić że znam bardzo ogólną zasadę działania procesora a asemblera to już w ogóle więc momentami mogę coś chrzanić od rzeczy.
- Czym właściwie są mikrokody?
Wikipedia angielska podaje:
the microcode is a layer of hardware-level instructions that implement higher-level machine code instructions or internal state machine sequencing in many digital processing elements.
Jak się domyślam mikrokody to taki firmware dla CPU który w pewnym stopniu modyfikuje zachowanie procesora
Nie wiem czy dobrze rozumiem powyższa definicję.
Mikrokody są zbiorem instrukcji procesora bezpośrednio na niego wpływających a instrukcje maszynowe są jakby zaimplementowane za ich pomocą ?
- **Kiedy mikroukłady są "ładowane" ? **
Na zdrowy rozum skoro mogę sobie "nie używać tego urządzenia" to oznacza że instalacja mikrokodów nie wpływa trwale na procesor czyli **mikrokody są ładowane przez jadro systemu operacyjnego podczas uruchamiania komputera **i operacje należy powtarzać po każdym twardym resecie. Dobrze piszę ?
- Rola mikrokodów czyli co one właściwie robią ?
Oczywiście wiem że konkretnej odpowiedzi nie uzyskam gdyż mamy wiele producentów, rodzin, architektur i modeli procesorów a (dla bezpieczeństwa ) mikrokody są rozprowadzane w formie nie jawnej poza wszelką kontrolą a ich działanie nie jest udokumentowane w żaden sposób (nie licząc sposobu ich instalacji ) jednak czy rezygnacja z mikrokodów w jakimś stopniu upośledza mój procesor.
Czy to znaczy że cześć zaawansowanych technologi (na przykład Intelowskich) **nie działa **?
Pytam gdyż jak widać na załączonym obrazku nie używam tych mikrokodów a nie zauważyłem (na ten moment) wolniejszego działania komputera.
4)** Czemu układy są tajne ?**
Dlaczego Intel (AMD pewnie też) szyfruje, podpisuje i wyrzuca klucz do tych mikrokodów :)
Domyślam się że jednym z powodów może być to że jest to zabezpieczenie przed niedzielnymi chAKERAMI którzy dobierali by się do nieszyfrowanych mikrokodów i psuli procki - lecz zwróćmy uwagę że tylko do najbliższego restartu - uważam że szyfrowane (o ile nie ma na celu ukrycia tylnych drzwi dla Narodowej Agencji Bezpieczeństwa Stanów Zjednoczonych ) jest niepotrzebne bo i na tych hakerów znalazła by się rada - patrz pytanie następne.
5)** Czy mikroukłady są potrzebne ?**
Zapytam naiwnie - czy mikrokody są naprawdę konieczne - mówiąc inaczej czy jest jakiś konkretny powód żeby aktualizować mikrokody.
Wydaję mi się że jedynym powodem dla którego istnieje możliwość ładowania firmwaru to ten że lepiej (bo taniej i mniej ryzykownie jest) wypuszczać aktualizację mikrokodów niż naprawdę gruntownie i dokładnie przetestować mikroukład pod kątem błędów. Dobrze myślę?
Czy też może istnieje inny powód?
BTW
Zaintrygował mnie ten artykuł a raczej tytuł:* Intel zablokuje możliwość podkręcania układów Haswell na płytach głównych B85, H81 i H87*
http://www.benchmark.pl/aktualnosci/intel-haswell-procesor-mikrokod-podkrecanie-blokada-b85-h81-h87.html
6) Jak to możliwe że Intel blokuje podkręcanie CPU - czy za sprawą tych mikrokodów jest blokowana spec-instrukcja do podkręcania CPU :)