Wykrywanie anomalii poprzez ML. Innowacje w weryfikacji – Semiwiki

Wykrywanie anomalii poprzez ML. Innowacje w weryfikacji – Semiwiki

Węzeł źródłowy: 2860927

Weryfikacja oparta na asercjach wychwytuje tylko problemy, dla których napisałeś twierdzenia. Czy istnieje uzupełniające podejście do wyszukiwania problemów, których nie brałeś pod uwagę – nieznanych niewiadomych? Paul Cunningham (starszy wiceprezes/GM, weryfikacja w Cadence), Raúl Camposano (Silicon Catalyst, przedsiębiorca, były dyrektor ds. technologii Synopsys, a obecnie dyrektor ds. technicznych Silvaco) i ja kontynuujemy naszą serię dotyczącą pomysłów badawczych. Jak zawsze, opinie mile widziane.

Innowacja

Wybór w tym miesiącu to Wykrywanie anomalii w oparciu o uczenie maszynowe na potrzeby diagnostyki błędów postsiliconowych. Artykuł opublikowany podczas konferencji DATE 2013. Autorzy są/byli z Uniwersytetu Michigan.

Metody wykrywania anomalii są popularne tam, gdzie nie można z góry określić, czego szukasz, na przykład w przypadku oszustw związanych z kartami kredytowymi lub w przypadku zabezpieczeń w czasie rzeczywistym, gdzie hacki wciąż ewoluują. Metoda ta gromadzi zachowania w okresie próbnym, ręcznie sprawdza je pod kątem oczekiwanego zachowania, a następnie w bieżących testach wyszukuje wartości odstające jako potencjalne problemy do dokładniejszego przeglądu.

Techniki wykrywania anomalii wykorzystują analizy statystyczne lub uczenie maszynowe. W artykule wykorzystano uczenie maszynowe do zbudowania modelu oczekiwanego zachowania. Można również łatwo wyobrazić sobie przesunięcie tej analizy w lewo do weryfikacji przed krzemem.

Pogląd Pawła

W tym miesiącu wyciągnęliśmy artykuł sprzed 10 lat na temat wykorzystania uczenia maszynowego do prób automatycznego wyszukiwania przyczyn błędów w walidacji po krzemie. To przyjemna lektura i wygląda na to, że świetnie nadaje się do ponownego odwiedzenia tej strony, teraz korzystając z DNN lub LLM.

Autorzy utożsamiają błędy postsiliconowe powodujące rootowanie z wykrywaniem oszustw związanych z kartami kredytowymi: każdy sygnał wyśledzony w każdym cyklu zegara można uznać za transakcję kartą kredytową, a problem powodujący błąd root staje się analogiczny do identyfikacji oszukańczej transakcji kartą kredytową .

Podejście autorów jest następujące: podziel symulacje na przedziały czasu i śledź procent czasu, przez jaki każdy sygnał debugowania śledzony po krzemie jest wysoki w każdym przedziale czasu. Następnie podziel sygnały na podstawie hierarchii modułów, starając się uzyskać moduł o rozmiarze około 500 sygnałów. Dla każdego modułu w każdym wycinku czasu wytrenuj model „oczekiwanego” rozkładu sygnału %high, używając złotego zestawu wolnych od błędów śladów postkrzemowych. Model ten jest bardzo prostym grupowaniem k-średnich sygnałów wykorzystującym różnicę w % wysokich czasów jako „odległość” między dwoma sygnałami.

Dla każdego nieudanego testu postkrzemowego, rozkład % wysokiego sygnału dla każdego modułu w każdym przedziale czasowym jest porównywany ze złotym modelem i zliczana jest liczba sygnałów, których % czasu wysokiego znajduje się poza obwiednią klastra złotego modelu. Jeśli liczba ta przekracza próg szumu, sygnały w tym przedziale czasu są oznaczane jako pierwotna przyczyna awarii.

To fajny pomysł, ale w dziesięciu testowanych przypadkach testowych OpenSPARC 30% testów nie zgłasza prawidłowego przedziału czasowego lub sygnałów, co jest zbyt wysokie, aby mogło mieć jakiekolwiek praktyczne zastosowanie. Chciałbym zobaczyć, co by się stało, gdyby zamiast prostego grupowania k-średnich zastosowano nowoczesny LLM lub DNN.

Pogląd Raula

To jest „wczesny” artykuł z 2013 roku wykorzystujący uczenie maszynowe do wykrywania błędów postsiliconowych. W tamtym czasie musiała to być praca zaawansowana, wymieniona w Google Scholar z 62 cytowaniami.

Pomysł jest prosty: przeprowadź wiele testów na konstrukcji postsilikonowej i zapisz wyniki. Kiedy sporadycznie występują błędy, różne wykonania tego samego testu dają różne wyniki, niektóre zaliczają się do udanych, a inne do niepowodzeń. Przejściowe awarie, często spowodowane asynchronicznymi zdarzeniami w chipie i efektami elektrycznymi, należą do najtrudniejszych do zdiagnozowania. Autorzy krótko rozważają zastosowanie uczenia się nadzorowanego, w szczególności uczenia się w jednej klasie (dostępne są tylko pozytywne dane szkoleniowe, błędy są rzadkie), ale odrzucają je jako „nie pasuje do zastosowania polegającego na wyszukiwaniu błędów”. Zamiast tego mają zastosowanie k-oznacza grupowanie; podobne wyniki są pogrupowane w k klastry składające się z „bliskich” wyników minimalizujących odległość sumy kwadratów w klastrach. W artykule ujawniono wiele szczegółów technicznych niezbędnych do odtworzenia wyników: Wyniki zapisuje się jako „ułamek czasu, w którym wartość sygnału wynosiła jeden w danym kroku czasowym”; liczba sygnałów z projektu, rzędu 10,000 XNUMX, to wymiarowość k-oznacza grupowanie, które jest NP-trudne pod względem liczby wymiarów, więc liczba sygnałów jest ograniczona do 500 przy użyciu analizy głównych składowych; liczba skupień nie może być ani za mała (niedopasowanie), ani za duża (nadmierne dopasowanie); należy wybrać odpowiedni próg wykrywalności anomalii, wyrażony jako odsetek wszystkich branych pod uwagę przykładów wadliwych; Lokalizację błędu w czasie osiąga się poprzez dwuetapowe wykrywanie anomalii, identyfikując, w którym kroku czasowym występuje wystarczająca liczba anomalii, aby ujawnić wystąpienie błędu, a następnie w drugiej rundzie identyfikując odpowiedzialne sygnały błędu.

Eksperymenty dotyczące projektu OpenSPARC T2 składającego się z około 500 milionów tranzystorów obejmowały 10 obciążeń o długości testowej od 60,000 1.2 do 100 miliona cykli, każde 10 razy w ramach szkolenia. Następnie wstrzyknęli 1000 błędów i przeprowadzili 347 testów z błędami. Średnio wykryto 1000 sygnałów błędu (od żadnego do 350), a od wstrzyknięcia błędu do jego wykrycia zajęło około 30 cykli opóźnienia. Liczba klastrów i próg wykrywalności mają duży wpływ na wyniki, podobnie jak ilość danych uczących. Fałszywie pozytywne i fałszywie negatywne wyniki sumowały się do 40-1000 (w XNUMX błędnych testach).

Choć autorzy zauważają, że „Ogółem spośród 41,743 2 sygnałów najwyższego poziomu OpenSPARC T347 algorytm wykrywania anomalii zidentyfikował 0.8, uśredniając liczbę błędów. Stanowi to 99.2% wszystkich sygnałów. Dzięki temu nasze podejście jest w stanie zmniejszyć pulę sygnałów o XNUMX%”w praktyce może to nie być zbyt pomocne dla doświadczonego projektanta. Minęło 10 lat, ciekawie byłoby powtórzyć tę pracę, wykorzystując dzisiejsze możliwości uczenia maszynowego, na przykład LLM do wykrywania anomalii.

Udostępnij ten post przez:

Znak czasu:

Więcej z Półwiki