Random Test Generator for Multicore Microprocessor Cache Coherence Verification (Ristretto)

Smirnov A.V., Chibisov P.A. (NIISI RAS)
Abstract - modern system-on-chip designs contain multiple computational cores with several levels of caches, as well as a sophisticated memory subsystem. Functional verification of multi-core microprocessor models is known to be a big challenge. There are different approaches for memory subsystem and cache coherence controllers verification but an automated functional test generation strategy is the most commonly used in the industry. In this paper, the technique of automated multi-core test generation is proposed. It can be applied for cache coherence and memory subsystem check in a top-level multi-core RTL-model simulation. Moreover, the presented test generator can be very effective in generating test scenarios for FPGA-prototypes of SoC being designed. In this paper we also give a detailed description of the random test generator itself and capabilities of generated test cases. The proposed test generator got its name “ristretto” due to the similarity of the word “ristretto” with the abbreviation formed from the words “random instruction sequence” (RIS), and the word “threads” (and because ristretto is so concentrated and intense). Some self-checking validation approaches are suggested to obtain correct responses in FPGA-based verification (post-silicon validation). In the paper we also discuss bug-masking problem in post-silicon random instruction tests that arises due to limited observability.

Keywords - multicore microprocessor, pseudorandom tests generation, functional verification, RTL-model, cache coherence, false sharing, memory subsystem, post-silicon validation, self-checking, bug masking.

Генератор тестов для проверки когерентности кэш-памятей многоядерных микропроцессоров (ristretto)

Смирнов А.В., Чибисов П.А. (ФГУ "ФНЦ НИИСИ РАН", г. Москва)
Аннотация - Современные системы на кристалле содержат множество вычислительных ядер, каждое из которых имеет кэш-память нескольких уровней, а также системный контроллер с симметричным доступом к общей памяти ОЗУ. Функциональная верификация моделей микропроцессора, содержащих два и более ядер, представляет собой трудоемкий этап проектирования таких систем. Тестирование подсистемы памяти и контроллеров когерентности – устройств, обеспечивающих согласованный обмен данными между ядрами, часто проводится с помощью автоматизированных генераторов тестов. В данной статье предложен метод автоматизированной генерации тестов, направленных на проверку когерентности кэш-памятей и подсистему памяти многоядерного микропроцессора, а также представлено описание созданного на основе этого метода генератора тестов.

Ключевые слова - многоядерный микропроцессор, псевдослучайные тесты, функциональная верификация, RTL-модель, когерентность кэш-памяти, false sharing.