Google разрабатывает проект SiliFuzz для массового обнаружения скрытых дефектов CPU
Google прилагает все усилия для проактивного обнаружения дефектов программного обеспечения в ключевых проектах с открытым исходным кодом. Но теперь стало известно, что компанией также разрабатывается система SiliFuzz, которая будет обнаруживать дефекты в процессорах.
Что это
Принцип работы SiliFuzz заключается в анализе производительности процессора путем выполнения заранее подготовленных тестовых данных, собранных с помощью эмуляторов. Это одна из разновидностей фазирования - процессор загружается "случайными" вычислениями, результат которых проверяется на выходе. Если есть несоответствие, процессор считается неисправным.
Для чего это нужно
Система в первую очередь предназначена для обнаружения электрических дефектов микросхем, которые могут возникнуть во время производства, сборки, рабочего процесса и т.д. Особое внимание уделяется именно им, а не логическим ошибкам в самих процессорах. В то же время, рассматриваемые тесты не используют никаких низкоуровневых механизмов отладки, что позволяет использовать их в "живых" системах.
По сути, задача разработчиков - создать систему, способную регулярно тестировать каждое ядро каждого сервера Google с минимальным влиянием на его производительность. В своем нынешнем виде SiliFuzz выбирает момент времени, когда нагрузка на конкретную машину не слишком велика, и последовательно тестирует группы из четырех потоков (2 ядра с SMT) не более чем за две минуты. В настоящее время разработчики сосредоточились на процессорах x86-64, которые широко используются самой компанией Google.
Основная цель проекта - автоматизировать обнаружение скрытых дефектов, приводящих к просчетам, которые гораздо опаснее простых сбоев и аварий, поскольку лишь небольшие отклонения в работе чипа приводят к накоплению целого массива ошибок. В некоторых случаях разница составила менее 0,0000003%, но этого может быть достаточно для возникновения серьезных проблем.
Какова эффективность
Около 45% дефектов, обнаруженных с помощью SiliFuzz, не отслеживаются другими инструментами. В будущем разработчики планируют расширить SiliFuzz, увеличить скорость работы программы и в целом улучшить качество ее работы.
Иллюстрации: Laura Ockel on Unsplash