1 / 18

Генератор тестовых программ MicroTESK: средства моделирования системы команд микропроцессора

RAS. ISP. Генератор тестовых программ MicroTESK: средства моделирования системы команд микропроцессора. Андрей Татарников andrewt@ispras.ru. Institute for System Programming of the Russian Academy of Sciences (ISPRAS) http://hardware.ispras.ru. Создание и верификация микропроцессоров.

harlan
Download Presentation

Генератор тестовых программ MicroTESK: средства моделирования системы команд микропроцессора

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RAS ISP Генератор тестовых программ MicroTESK: средства моделирования системы команд микропроцессора Андрей Татарников andrewt@ispras.ru Institute for System Programming of the Russian Academy of Sciences (ISPRAS) http://hardware.ispras.ru

  2. Создание и верификация микропроцессоров Языки описания цифровой аппаратуры (HDL) • Verilog • VHDL Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  3. Подходы к верификации микропроцессоров • Экспертиза • Формальную верификация • Имитационное тестирование • Модульное (сигналы) • Системное (тестовые программы) Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  4. Системное тестирование Тестовые программы lui s1,0x27 ori s1,s1,0xc8 lui s3,0x4e ori s3,s3,0xf7... Эталонная модель (эмулятор) на C Симулятордизайна (Verilog) ✕ Возникла ошибка Сравнение трасс  Успешный прогон Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  5. lui s1, 0x2779 ori s1, s1, 0x0 lui s3, 0x4ee ori s3, s3, 0xf add v0, a0, a2 sub t1, t3, t5 add t7, s1, s3 Подходы к разработке тестовых программ Дизайн ? • Ручная разработка • Случайная генерация • Генерация основанная на тестовых шаблонах • Генерация основанная на моделях Требования Тестовые программы Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  6. Способы автоматической генерации тестов • Случайная • Комбинаторная • Основанная на ограничениях • Направленная генерация Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  7. Использование моделей в генераторах тестов • Основные компоненты • Ядро генератора • Модель микропроцессора • Модель системы команд • Тестовое знание • Генераторы основанные на моделях • RAVEN (Obsidian Software, now ARM) • Genesys-Pro (IBM Research) • MicroTESK (ISPRAS) Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  8. Организация модели микропроцессора в MicroTESK Модель Провайдер метаданных Симулятор Тестовая программа Генератор (ядро) Ресурсы Монитор состояния Команды Конфигуратор вызовов Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  9. Описание системы команд при помощи формальных спецификаций Языки описания архитектуры (ADL) • nML • Sim-nML Преимущества • Простота • Расширяемость • Возможность извлечения тестовых знаний Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  10. Язык Sim-nML: Спецификация ресурсов микропроцессора Регистры: reg GPR[REGS, word] reg CPSR[word] Память: mem M[2 ** 10, byte_t] Переменные: var temp[1,word] varshifter_carry_out[1,bit] var ALU_OUT[1,word] Типы данных: type dword = card(64) type word = card(32) type hword = card(16) type byte_t = card(8) Константы и метки: let REGS = 2**5 let byte_order = ”little” let PC = "GPR[15]” let SP = "GPR[13]” Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  11. Язык Sim-nML: Спецификация команд Композиция примитивов, OR-и AND-правила op instruction(x: arith_mem_inst) syntax = x.syntax image = x.image action = x.action oparith_mem_inst(y: Add_sub_mov, op1: OPRNDL, op2: OPRNDR) syntax = format("%s %s %s", y.syntax, op1.syntax, op2.syntax) image = format("%s %s 00%s", y.image, op1.image, op2.image) action = { SRC1 = op1; SRC2 = op2; y.action; op1 = DEST; PC = PC + 2; } opAdd_sub_mov = Add | Sub | Mov REG Instruction mov eax, ebx opMov() syntax = "mov“ image = "10“ action = { DEST = SRC2; } opAdd_sub_mov = Add | Sub | Mov mode REG(i: nibble)=R[i] syntax = format("R%d", i) image = format("01%4b", i) mode OPRNDL = MEM | REG | IREG IREG AND-правило OPRND Arithm MEM OPRND REG Add_Mov_Sub IREG Add Mov Sub MEM OR-правило Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  12. Язык Sim-nML: Анализ кода Предусловие op ADD(rd: GPR, rs: GPR, rt: GPR) action = { if(NotWordValue(rs) || NotWordValue(rt))then UNPREDICTABLE(); endif; tmp_word = rs<31..31>::rs<31..0> + rs<31..31>::rt<31..0>; if(tmp_word<32..32> != tmp_word<31..31>)then SignalException("IntegerOverflow"); else rd = sign_extend(tmp_word<31..0>); endif; } syntax = format("add %s, %s, %s", rd.syntax, rs.syntax, rt.syntax) op ALU = ADD | SUB | ... Тестовые ситуации Классы эквивалентности Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  13. Построение модели в MicroTESK Трансляции спецификации на Sim-nML в Java-модель Транслятор Парсер AST Парсер AST IR Генератор кода Sim-nML Модель API модели Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  14. Внутреннее представление (IR) Список таблиц примитивов: • Константы • Метки • Типы данных • Ресурсы (регистры, память, переменные) • Операции и режимы доступа (op и mode) • Параметры • Результат • Атрибуты Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  15. API модели системы команд Основные библиотеки: • Data library • Metadata • Memory • Instructions • Simulation • Monitoring Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  16. Программное представление модели Модель Инструкции Ресурсы Операции Режимы адресации @Override publicIInstructionCallgetCall() throwsConfigurationException { final IAddressingMode op1 = getArgument("op1"); final IAddressingMode op2 = getArgument("op2"); return newInstructionCall( new Instruction(newArith_Mem_Inst(newMov(), op1, op2))); } Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  17. Заключение Достигнутые результаты: • API для моделирования ISA • Транслятор языка Sim-nML • Модель для ARM Дальнейшие планы: • Интеграция модели ISA с моделью MMU • Извлечение тестовых знаний Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

  18. Спасибо!Вопросы? Institute for System Programming of the Russian Academy of Sciences (ISPRAS), 2013

More Related