Моделирование и верификация коммуникационных фабрик при проектировании систем на кристалле Александр Готманов (Intel Corp.), Михаил Кишиневский (Intel Corp.), Сатраджит Чэттерджи (Two Sigma Investments) МЭС 2012 Коммуникационная фабрика Решает задачу взаимодействия устройств на кристалле Ядра, кэши, IP блоки, память и т.д. Разнообразие микроархитектур и топологий. Intel® Atom® processor CE4100 2 Трудности проектирования Распределенные алгоритмы – разделение ресурсов – зависания – нарушения упорядочения Модульный подход не работает Позднее обнаружение проблем – на этапе сборки системы – RTL, Si Как обнаруживать ошибки в начале проектирования? 3 Решение Построение абстрактных микроархитектурных моделей на раннем этапе проектирования Модель Моделирование Верификация Исправление ошибок Архитектура Результаты Формальное доказательство корректности на модели 4 Язык моделирования xMAS Модель = синхронная сеть передачи пакетов, построенная из простых примитивов Примитивы соединяются каналами k источник 5 канал k цель Семантика Примитив = синхронный модуль (ср. модель Verilog с одним тактовым сигналом) Канал реализует простой протокол типа “запрос-ответ” k k обозначает data irdy trdy 6 Очередь FIFO ofразмера size k k (источник, initiator) data irdy trdy канал Очередь FIFO ofразмера size k k (цель, target) data irdy trdy Пример 42(8-bit) 2 x id 2 id (queue A) id x id (queue A) 42(8-bit) 2 x (queue B) цикл 1 2 (queue B) цикл 4 закрытый сток 42(8-bit) 2 x id id (queue A) x (queue B) цикл 2 42(8-bit) x 2 (queue A) 7 x 2 id id 42(8-bit) 2 x (queue B) цикл 3 2 id (queue A) id 2 (queue B) цикл 5 … 42(8-bit) 2 id (queue A) id 2 (queue B) цикл 6 Разнообразие моделей • Компоненты – FSM (автоматы) – Логика упорядочения – Таблицы – Конвейеры – Переключатели пакетов – Кэши –… 8 • Топологии – Шины – Кольца – Решетки • Агенты – Протокольные зависимости – IP блоки, ядра – Контроллеры памяти Инварианты / 1 Данные на канале обладают некоторым свойством 𝑃(𝑥) ― например, все входящие пакеты имеют правильный адрес назначения 0 (6-bit) k4 x (очередь 1) 4 k y (очередь 2) Пример: z 𝐆 (z. irdy → (z. data = 0)) ― Доказательство может представлять серьезную трудность для стандартных алгоритмов верификации ― На практике модели содержат десятки/сотни очередей и примитивов Обозначения LTL, F = “однажды”, G = “всегда” 9 Инварианты / 2 0 (6-bit) Структурный анализ модели позволяет усилить инвариант k4 x 4 k (очередь 1) y (очередь 2) Исходное свойство: z 𝐆 (z. irdy → (z. data = 0)) Шаг 1: 𝐆 (usedj → (memj = 0)) Шаг 2: 𝐆 (y. irdy → (y. data = 0)) Шаг 3: 𝐆 (usedj → (memj = 0)) Всякий пакет в очереди 2 имеет значение 0 (То же для очереди 1) Совокупность построенных инвариантов индуктивна. 10 Инварианты / 3 Посылка запроса возможна только при наличии доступного кредита, что гарантирует место в очереди входящих запросов. Свойство неблокирующей передачи: 𝐆 (r. irdy → r. trdy) 11 Инварианты / 4 Запишем уравнения сохранения пакетов в окрестности каждого примитива (ср. уравнения Кирхгофа для тока) numo numc numi Индуктивное уравнение баланса: 𝐆 (numi + numc = numo) 12 Краткий вывод • Модель строится из примитивов с известными свойствами • Структурный анализ для автоматической генерации и усиления инвариантов • Быстрая и надежная верификация больших моделей • Chatterjee S., Kishinevsky M., Automatic generation of inductive invariants from high level microarchitectural models of communication fabrics, CAV 2010 13 Зависание data irdy trdy • Зависание определяется для отдельного канала • 𝐃𝐞𝐚𝐝(𝑢) = “на канале u появляется пакет, но выход u всегда остается закрытым” • 𝐃𝐞𝐚𝐝(𝑢) = 𝐅(u. irdy · 𝐆 ¬u. trdy) • 𝐋𝐢𝐯𝐞(𝑢) = ¬𝐃𝐞𝐚𝐝(𝑢) = 𝐆(u. irdy → 𝐅 u. trdy) 14 Ограничения справедливости • Ограничения для справедливого стока: x 𝐆𝐅(x. trdy) • 𝐅𝐚𝐢𝐫 = конъюнкция всех ограничений • Требуется доказать: 𝐅𝐚𝐢𝐫 → 𝐋𝐢𝐯𝐞(𝑢) 15 Методы решения задачи • Верификация моделей – Поиск циклического пути в пространстве состояний, обладающего определенными свойствами – Плохо масштабируется; не применима к моделям xMAS с 10-ми очередей Пример • Доказательство теорем Модель обмена сообщениями с упорядочением – Трудоемкая задача,75 требует специалиста по примитивов формальной верификации (24 очереди) • Структурный анализ Верификация (ABC) свойства примитивов xMAS, – Опираетсямоделей на известные Структурный анализ Ограниченное док-во, хорошо масштабируется Полное док-во за 4 сек. 29 тактов за 1 час. 16 Стационарные переменные 𝐈𝐝𝐥𝐞(𝑢) = 𝐅𝐆(¬𝑢. 𝑖𝑟𝑑𝑦) “u стремится к состоянию idle (𝑢. 𝑖𝑟𝑑𝑦 = 0)” 𝐁𝐥𝐨𝐜𝐤(𝑢) = 𝐅𝐆(¬𝑢. 𝑡𝑟𝑑𝑦) “u стремится к состоянию block (𝑢. 𝑡𝑟𝑑𝑦 = 0)” 𝐃𝐞𝐚𝐝(𝑢) = ¬𝐈𝐝𝐥𝐞(𝑢) · 𝐁𝐥𝐨𝐜𝐤(𝑢) 𝐅𝐚𝐢𝐫 = ¬𝐁𝐥𝐨𝐜𝐤(𝑤) Состояние модели на бесконечности задается значениями стационарных переменных. 17 Стационарные уравнения Idle(u) Block(u) u k v Idle(v) Block(v) Empty(q) Full(q) 𝐅𝐮𝐥𝐥(𝑞) = 𝐅𝐆(q. num = 𝑘) u.trdy = (q.num < k) v.irdy = (q.num > 0) … “q стремится к состоянию full (𝑞. 𝑛𝑢𝑚 = 𝑘)” 𝐄𝐦𝐩𝐭𝐲(𝑞) = 𝐅𝐆(q. num = 0) “q стремится к состоянию empty (𝑞. 𝑛𝑢𝑚 = 0)” 𝐁𝐥𝐨𝐜𝐤(𝑢) = 𝐅𝐮𝐥𝐥(𝑞) “u стремится к block ⟺ q стремится к full” 𝐅𝐮𝐥𝐥(𝑞) → 𝐁𝐥𝐨𝐜𝐤(𝑣) “если q стремится к full, то v стремится к block” Каждый примитив ограничивает возможные значения стационарных переменных в своей окрестности. 18 Ход доказательства 𝐃𝐞𝐚𝐝(𝑢) = ¬𝐈𝐝𝐥𝐞(𝑢) · 𝐁𝐥𝐨𝐜𝐤(𝑢) 𝐁𝐥𝐨𝐜𝐤(𝑣) 𝐁𝐥𝐨𝐜𝐤(𝑤) 𝐅𝐮𝐥𝐥(𝑞1) 𝐅𝐮𝐥𝐥(𝑞2) ¬𝐁𝐥𝐨𝐜𝐤(𝑤) 𝐁𝐥𝐨𝐜𝐤(𝑢) = 𝐅𝐮𝐥𝐥(𝑞1) 𝐅𝐮𝐥𝐥(𝑞1) → 𝐁𝐥𝐨𝐜𝐤(𝑣) 𝐒𝐭𝐫𝐮𝐜𝐭 𝑴 𝐁𝐥𝐨𝐜𝐤(𝑣) = 𝐅𝐮𝐥𝐥(𝑞2) (стационарные уравнения) 𝐅𝐮𝐥𝐥(𝑞2) → 𝐁𝐥𝐨𝐜𝐤(𝑤) 𝐅𝐚𝐢𝐫 = ¬𝐁𝐥𝐨𝐜𝐤(𝑤) (ограничения справедливости) 𝐃𝐞𝐚𝐝(𝑢) · 𝐒𝐭𝐫𝐮𝐜𝐭 𝑴 · 𝐅𝐚𝐢𝐫 = 0 как формула исчисления высказываний Не существует выполнения модели, в котором было бы выполнено 𝐃𝐞𝐚𝐝(𝑢). Для доказательства пригоден любой SAT-солвер (алгоритм проверки выполнимости формул). 19 Обзор метода 𝐃𝐞𝐚𝐝(𝑢) как ¬𝐈𝐝𝐥𝐞 · 𝐁𝐥𝐨𝐜𝐤 + 𝐒𝐭𝐫𝐮𝐜𝐭 𝑴 + 𝐅𝐚𝐢𝐫 стационарные уравнения, отражающие семантику примитивов Для применения на практике также требуются • Дополнительные инварианты, ограничивающие значения как стац-х ¬𝐁𝐥𝐨𝐜𝐤переменных (порождаются автоматически) • Дополнительные переменные для описания зависимости от данных • UNSAT = Зависаний нет (доказательство) (подробности в статье) • SAT = Контрпример 20 Эксперименты (доказательство) Модель NPrims / NQueues Время (ABC) Время (структурный анализ) Две очереди 4/2 <1c <1c SMF = модель обмена сообщениями 57 / 20 N/A 2c SMF с упорядочением 75 / 24 N/A 4c IOF = “южный мост” 493 / 97 N/A 90c CMF = “северный мост” 710 / 88 N/A 690c 21 Заключение • Моделирование микроархитектуры путем композиции примитивов • Методы структурного анализа для быстрой верификации • Автоматизированное доказательство отсутствия зависаний для моделей с 100-ми очередей 22