Чибисов Петр Александрович НИИСИ РАН Запуск ОС Linux как этап функционального тестирования микропроцессоров.

Презентация:



Advertisements
Похожие презентации
1 Знаток математики Тренажер Таблица умножения 2 класс Школа 21 века ®м®м.
Advertisements

Таблица умножения на 8. Разработан: Бычкуновой О.В. г.Красноярск год.
Масштаб 1 : Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Масштаб 1 : Приложение 1 к решению Совета депутатов города Новосибирска от
1. Определить последовательность проезда перекрестка
Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______ Масштаб 1 : 5000.
Лекция 1 Раздел 1 Windows Phone Темы раздела 3 Windows Phone Устройство на платформе Windows Phone 4.
1 Трудные случаи таблицы умножения и деления 2 Приношу свои извинения, но придётся начать заново!
Тренировочное тестирование-2008 Ответы к заданиям КИМ Часть I.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
20 Всего заданий Введите фамилию и имя Внетабличное умножение и деление умножение и деление Начать тестирование Мартиросова С.Н МОУ средняя общеобразовательная.
Приложение 1 к решению Совета депутатов города Новосибирска от Масштаб 1 : 5000.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 4500 к решению Совета депутатов города Новосибирска от
ЦИФРЫ ОДИН 11 ДВА 2 ТРИ 3 ЧЕТЫРЕ 4 ПЯТЬ 5 ШЕСТЬ 6.

Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.

Вычислите, укажите правильный ответ
Д. Дуброво д. Бортниково с. Никульское д. Подлужье д. Бакунино пос. Радужный - Песчаный карьер ООО ССП «Черкизово» - Граница сельского поселения - Граница.
Транксрипт:

Чибисов Петр Александрович НИИСИ РАН Запуск ОС Linux как этап функционального тестирования микропроцессоров

2/30 Типы тестов микропроцессоров : – Тесты разработчика; – Программы аттестации архитектуры; – Псевдослучайные тесты; – Переборные тесты; – Загрузка одной или нескольких ОС; – Программы и приложения под ОС ; – Тесты производительности.

3/30 Тесты под ОС Linux: – Зачем их запускать? – Какие ОС и тесты запускать? – Типичные сценарии запуска тестов. – Что показывают тесты производительности? – Какие ошибки были найдены? – Что в планах на будущее?

4/30 Зачем запускать тесты под ОС? – большой архитектурный тест; – множество самопроверяющихся testcase'ов; – идеи для шаблонов псевдослучайных тестов; – огромное количество тестов системы под ОС (LTP, сборка RPM-пакетов, SPEC, X...); – изучение производительности процессора (анализ трасс + результаты тестов); – решение задач на native-платформе (gcc, gdb, тесты C+asm), программирование cp2; – измерение основных электрических параметров потребления ядер микропроцессоров; – академический интерес.

5/30 Схема тестовой установки

6/30 Какие ОС и тесты запускаются? ОС: ОСРВ 2000/3000, Linux Red Hat / Debian Тесты: - baget и baget- 2.6, компиляция ядер ОС Linux; - LTP, пакет тестов Linux Test Project, версии ; - memtester , тест памяти; - тесты производительности процессора CPU SPEC 2000, CPU SPEC 2006 ; - CP_NDEV, тест копирования файлов;

7/30 Тесты, запускаемые под ОС Linux - mpfr-3.0.0, mpc-0.8.2, mpfrcx-0.3.1, mpir-2.2.1, gappa , gmp-5.0.1, математические библиотеки точных вычислений, содержат встроенные тесты; - glucas-2.9.2, пакет вычислений простых чисел, хорошо нагружает FPU; - ruby-1.9.2, Python-2.5, perl-5.8.8, php-5.3.8, языки программирования, содержат встроенные тесты; - icarus verilog-0.9.3, моделирование VerilogHDL; - lame-3.97, flac-1.2.1, ffmpeg-0.5, кодеры/декодеры mp3/flac/видео; - kdegames , графические приложения – игры для KDE; - koffice-1.6.3, полный пакет офисных программ KDE;

8/30 Тесты, запускаемые под ОС Linux - mozilla-firefox , Интернет-браузер (gtk , cairo-1.2.6, pango , pkgconfig , neon , bison-2.4, atk-1.9.1, libIDL-0.8.8, libnotify-0.4.4, libsigc , libxml , m , numactl-2.0.3, dbus-0.60, sqlite , curl ); - wormux , графическая игра; - gcc–4.5.2 (C,C++,F77,F90,Java,…) selftests;

9/30 Тесты, запускаемые под ОС Linux - Lmbench, тест производительности системы; - paranoia (разные оптимизации); - X : KDE/Gnome; - тесты gcc (кросс-компиляция); - тесты производительности: dhrystone, whetstone, coremark, iobench, …; - тесты cp2 (dsplib); - HPL (MPI + ATLAS/GotoBLAS); - тесты posix под oc3000;

10/30 Типичные сценарии запуска тестов Вариант 1: for i in `find …`; do … ; done Вариант 2: tar zxf …. tgz./configure CC=gcc –march=7k … make make check

11/30 Тесты производительности – dhrystone; – whetstone; – coremark; – lmbench-3.0.9; – SPEC2000 (INT + FP); – SPEC2006 (INT + FP); – read / write speed в ОС3000; – Switch Context / Thread response time в ОС3000.

12/30 Сравнение производительности 1. Тест dhrystone под ОС3000: 1 – ВМ 5 Ф, 2 – ВМ6Я, 3 – разрабатываемый 65 нм

13/30 Сравнение производительности 2. Тест whetsone (fpu) под ОС3000: 1 – ВМ 5 Ф, 2 – ВМ6Я, 3 – разрабатываемый 65 нм

14/30 Сравнение производительности 3. Тест coremark под ОС Linux: 1 – ВМ5Ф, 2 – ВМ6Я

15/30 Сравнение производительности 4.1 Тесты lmbench под ОС Linux: 1 – ВМ5Ф, 2 – ВМ6Я [F core =260, F mem =130 MHz ] Processor, Processes - times in microseconds - smaller is better Host OS Mhz null null open slct sig sig fork exec sh call I/O stat clos TCP inst hndl proc proc proc VM5 Linux K 45K 1890VM6 Linux K Basic integer operations - times in nanoseconds - smaller is better Host intgr intgr intgr intgr intgr bit add mul div mod VM VM

16/30 Сравнение производительности 4.2 Тесты lmbench под ОС Linux: 1 – ВМ5Ф, 2 – ВМ6Я Basic float/double operations - times in nanoseconds - smaller is better Host float float float float double double double double add mul div bogo add mul div bogo VM VM

17/30 Сравнение производительности 4.3 Тесты lmbench под ОС Linux: 1 – ВМ5Ф, 2 – ВМ6Я Memory latencies in nanoseconds - smaller is better Host L1 $ L2 $ Main mem Rand mem VM VM File & VM system latencies in microseconds - smaller is better Host 0K File 10K File Mmap Prot Page 100fd Create Delete Create Delete Latency Fault Fault selct VM K VM K

18/30 Сравнение производительности CPU SPEC2000 INT (F core = 192 MHz, F mem = 96 MHz)

19/30 Сравнение производительности CPU SPEC2000 FP (F core = 192 MHz, F mem = 96 MHz)

20/30 Сравнение производительности CPU SPEC2000 INT: +28.4% CPU SPEC2000 FP: +36.6%

21/30 Локализация ошибок в микропроцессоре 1. Однократный сбой? 2. Программная ошибка? 3. Какая именно shell-команда вызывает сбой? (локализация testcase) 4. Как влияют F core / F mem, SS, BP, Sp, L2? 5. Как ведет себя testcase на ПЛИС и на vmips (golden model emulator)? 6. Есть ли ошибка в RTL-коде?

22/30 Примеры найденных ошибок 1. процессор 1890 ВМ 5 Ф, 18 марта 2011: make check для perl Зависание процессора в ситуации: 2624 PC=0x4cf0ec [38560ec] 8e lw $v0,0x0($s2) 2625 PC=0x4cf0f0 [38560f0] 8f lw $v1,0x8024($gp) 2626 PC=0x4cf0f4 [38560f4] c lwc1 f2,0x14($v0) Exception CpUnusable, cause=11 at PC=0х4cf0f4 triggered, instr=c Priority is 10; delay state is NORMAL;

23/30 Примеры найденных ошибок 2. процессор 1890 ВМ6Я, ноябрь 2010: компиляция теста ATLAS под ОС Linux. (компилятор иногда останавливается с сообщением о неизвестной ошибке - падает программа CC1 ). Ошибка в цикле: 72d62c: ac sw zero,20(v0) 72d630: 8c lw v0,4(v0) 72d634: nop [ INT] 72d638: 1440fffc bnez v0,72d62c 72d63c: nop в случае прихода прерывания в один из тактов выполнения инструкции перехода (bnez). При этом, переход ошибочно происходил, несмотря на v0==0. Ошибка исчезает при отключении суперскалярности. В новой версии 1890 ВМ6Я (сентябрь 2011) этой ошибки нет.

24/30 Примеры найденных ошибок 3. процессор 1890 ВМ6Я, 2 сентября 2011: запуск инсталлятора ОС Linux Debian Процессор не вызвал Reserved Instruction Exception по инструкции rdhwr 3,29 (opcode= 0x7c03e83b ), тогда как ядро ОС ждёт исключения. 1). Замена в исходниках ядра (balo) инструкции с опкодом 0х7c03e83b [rdhwr v1,$29] на инструкцию 0x7c03e833 (всегда вызывает RI - см. II-й pdf описание поля special3). 2). Замена 0х7c03e83b на 0x7c03e833 во всех библиотечных файлах файловой системы.

25/30 Примеры найденных ошибок 4. процессор 1890ВМ6Я, 16 сентября 2011: запуск поправленной версии инсталлятора ОС Linux Debian. Процессор неправильно отработал инструкцию eret в обработчике RI Exception, вызывав Coprocessor Unusable Exception. Пример кода: PC=0x [8480] df ld $v1,0x18($k1) PC=0x [8484] eret Ошибка только в случае, если ld вызывает dcache miss + dTLB hit. Ошибка исправляется добавлением двух ssnop между ld и eret. (Файл ядра arch/mips/kernel/genex.S)

26/30 Примеры найденных ошибок 5. процессор 1890 ВМ 5 Ф, ревизия 2 ( 2008 г.), тест SPEC eon: неверные данные у mfc1 в ситуации: madd.D $fp0,... lw … addiu … jr mfc1...,$fp1 в режиме 32 -х разрядной совместимости FPU.

27/30 Изучение кода ошибок – Трассы кода, набор инструкций; – Сегментация памяти; – Режимы работы (K,S,U; 32/64); – Исключительные ситуации; – Прерывания; – Кэш-память; – Сопроцессоры.

28/30 Выводы + огромное количество готовых тестов; + относительно простой запуск; + тестирование с большим уровнем асинхронных прерываний/событий; + большая уверенность в проекте, чем после прогона базы тестов; – избыточность тестов; – иногда трудно локализовать ошибку.

29/30 Планы по развитию методики - MPI и параллельные вычисления; - изучение QEMU, OVP - эмуляция многотредовых многоядерных процессоров; - тесты на F77, F90 ; - test profiling и test coverage; - Использование системы buildroot; - улучшение шаблонов для псевдослучайного тестирования.

30/30 Спасибо за внимание! Вопросы?