Google докладає всіх зусиль для проактивного виявлення дефектів програмного забезпечення в ключових проектах з відкритим вихідним кодом. Але тепер стало відомо, що компанією також розробляється система silifuzz, яка буде виявляти дефекти в процесорах.

Що це

Принцип роботи silifuzz полягає в аналізі продуктивності процесора шляхом виконання заздалегідь підготовлених тестових даних, зібраних за допомогою емуляторів. Це одна з різновидів фазування-процесор завантажується “випадковими” обчисленнями, результат яких перевіряється на виході. Якщо є невідповідність, процесор вважається несправним.

Для чого це потрібно

Система в першу чергу призначена для виявлення електричних дефектів мікросхем, які можуть виникнути під час виробництва, складання, робочого процесу і т. Д. Особлива увага приділяється саме їм, а не логічним помилкам в самих процесорах. У той же час, розглянуті тести не використовують ніяких низькорівневих механізмів налагодження, що дозволяє використовувати їх в “живих” системах.

По суті, завдання розробників – створити систему, здатну регулярно тестувати кожне ядро кожного сервера google з мінімальним впливом на його продуктивність. У своєму нинішньому вигляді silifuzz вибирає момент часу, коли навантаження на конкретну машину не надто велика, і послідовно тестує групи з чотирьох потоків (2 ядра з smt) не більше ніж за дві хвилини. В даний час розробники зосередилися на процесорах x86-64, які широко використовуються самою компанією google.

Основна мета проекту – автоматизувати виявлення прихованих дефектів, що призводять до прорахунків, які набагато небезпечніше простих збоїв і аварій, оскільки лише невеликі відхилення в роботі чіпа призводять до накопичення цілого масиву помилок. У деяких випадках різниця склала менше 0,0000003%, але цього може бути достатньо для виникнення серйозних проблем.

Яка ефективність

Близько 45% дефектів, виявлених за допомогою silifuzz, не відстежуються іншими інструментами. У майбутньому розробники планують розширити silifuzz, збільшити швидкість роботи програми і в цілому поліпшити якість її роботи.