Procesor pod ochroną semantycznego strażnika
Akademicy z University of Michigan nie ustają w wysiłkach na rzecz udoskonalania układów scalonych. Przed niemal rokiem informowaliśmy o ich oprogramowaniu, które wyszukuje błędy w chipach i proponuje sposoby ich naprawy. Teraz czas na technologię, dzięki której unikniemy problemów z komputerem, w którym znalazł się wadliwy procesor.
Firmy produkujące układy scalone są w stanie wyłapać poważniejsze błędy. Ale niemożliwe jest sprawdzenie wszelkich rodzajów operacji, jakie może wykonywać procesor, dlatego też do klienta mogą trafić kości, które będą ulegały awariom w pewnych nietypowych sytuacjach.
Uczeni z University of Michigan chcą uchronić użytkowników przed tego typu niespodziankami dzięki wirtualnemu "płotowi", który zabezpieczy układ. Pomysł naukowców polega na zapisaniu w maleńkim monitorze dołączanym do układu scalonego informacji o wszystkich bezpiecznych scenariuszach jego wykorzystania. Te bezpieczne scenariusze to nic innego jak testy, które układ scalony przechodzi przed opuszczeniem fabryki. Podczas tych testów sprawdzanych jest co prawda stosunkowo niewiele konfiguracji procesora, ale są to takie konfiguracje, w których w praktyce układ znajduje się przez 99,9% swojego czasu pracy.
Zadaniem opracowanego przez University of Michigan zabezpieczenia, zwanego semantycznym strażnikiem (Semantic Guardian), jest reagowanie w momencie, gdy kość znajdzie się w nieprzetestowanej konfiguracji. Wówczas praca procesora jest spowalniana, przełączany jest on w "bezpieczny tryb". Innymi słowy, strażnik traktuje wszystkie nieprzetestowane konfiguracje jako stan potencjalnie niebezpieczny.
Valeria Bertacco, profesor na Wydziale Inżynierii Elektrycznej i Nauk Komputerowych, zapewnia: Użytkownik nawet nie zauważy, że procesor został przełączony w tryb bezpieczny. Będzie się to zdarzało rzadko i stan taki potrwa bardzo krótko, tak, by kość przeprowadzić przez nieznane terytorium. Później z powrotem przełączy się ona w zwykły tryb. Układ w trybie bezpiecznym wykonuje wszelkie zadane mu operacje, czyni to jednak wolniej. Pani profesor porównuje technologię do motocyklisty, który jadąc szosą trafia nagle na pełną dziur, polną drogę. Otrzymuje wówczas rower, dzięki któremu może bezpiecznie przejechać.
Co więcej technologia z Michigan może powstrzymać też przyszłe zagrożenie ze strony cyberprzestępców. Kris Kaspersky zapowiada, że podczas konferencji Hack in the Box zaprezentuje niezależny od systemu operacyjnego sposób ataku na błędy w układzie scalonym.
Komentarze (6)
ZolV, 3 października 2008, 08:25
Pomysl jest dobry, zwlaszcza ze aktualną tendencją jest zwiększanie ilości procesorów w pojedynczych maszynach.
System taki, jesli bylby zaimplementowany sprzetowo, bylby rzeczywiscie niezauwazalny, a systemom zapewnilby duzo bezpieczniejsza i stabilniejsza prace.
w46, 3 października 2008, 08:55
Nie do końca rozumiem w jaki sposób przełączenie procesora w tryb bezpieczny może uchronić od wystąpienia błędów w działaniu gdy procesor jest uszkodzony.
thibris, 3 października 2008, 09:57
Błędy się pewnie pojawią, ale z mniejszą częstotliwością. Być może w trybie bezpiecznym/wolniejszym łatwiej jest te błędy skorelować. Znów analogia do motocyklisty i dziurawej drogi - jadąc wolniej, masz większe szanse, że po wpadnięciu w dołek/dziurę/błąd wyjedziesz z niego na motorze, a nie pod nim.
Tylko przydałoby się jeszcze w takim strażniku zaimplementować jakiś mechanizm uczenia się - jeśli jakąś operację w trybie bezpiecznym procesor wykona bezbłędnie, powinna ona zostać zaliczona do przetestowanych i bezpiecznych.
dekon0, 4 października 2008, 10:40
Nie zgodzę się z tym ,że nie idzie przetestować "wszelkich rodzajów operacji, jakie może wykonywać procesor" - nie jest ich wcale tak dużo około 200 rozkazów niskopoziomowych na procek typu intel.Do tego dochodzą różne tryby adresowania ,czyli defakto nowy rozkaz.
Czym innym jest długie testowanie softwerowe procesora: obciążenie go na najwyższych obrotach (działanie w stresie) ,sprawdzenie banków pamięci(cache),wielowątkowość,kolejkowanie it.p. od testowania sprzętowego czyli specjalna podstawka w którą go wkładamy i testujemy wszelkie układy we.\wyj.
Na pewno nie jest to tym samym co testowanie na naszej płycie głównej ,która może podawać mu za duże napięcie na rdzeń ,a poza tym może być tanią podrzędną płytą.
thibris, 4 października 2008, 14:48
Ale tu nie chodzi o testowanie wszystkich możliwych rozkazów procesora - jak sam wiesz nie jest ich za wiele. Ale dolicz do tego wszystkie instrukcje SSE itp.
Przeczytaj jeszcze raz o co konkretnie im chodziło:
thikim, 4 października 2008, 23:20
Scenariusze wykorzystania to nie tylko rozkazy. Same rozkazy muszą być przetestowane w 100%. To także przerwania, stany na poszczególnych końcówkach układu. To także wykonywanie kilku rozkazów naraz na różnych etapach realizacji.
Także zapewne sposób zasilania, dopuszczalne zakresy wahania zasilania, temperatur pracy. Jest to dość dużo czynników.