Имитационное моделирование в исследовании и разработке информационных систем Лекция 2 Кафедра АСВК, Лаборатория Вычислительных к омплексов с.н.с. Бахмуров.

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



Advertisements
Похожие презентации
ВСТРОЕННЫЕ ИНФОРМАЦИОННО- УПРАВЛЯЮЩИЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ Лекция 09 Мониторинг и отладка ИУС РВ Кафедра АСВК, Лаборатория Вычислительных Комплексов.
Advertisements

Микропроцессоры Лекция 6. СТРУКТУРА ЭЛЕМЕНТАРНОГО МИКРОПРОЦЕССОРА (ЭМП) Основным устройством всех цифровых систем (ЦС) является центральный процессор.
Интерфейсы периферийных устройств. Определения Периферийные устройства (ПУ) - это устройства ЭВМ, не входящие в состав центральной части ВС и предназначенные.
1 Микропроцессорная система. 2 Особенности микропроцессорных систем Гибкая логика работы меняется в зависимости от задачи; Универсальность может решать.
Магистрально- модульное построение компьютера. Введение Архитектура современных персональных компьютеров (ПК) основана на магистрально- модульном принципе.
Учебный курс Введение в цифровую электронику Лекция 5 Обмен информацией в микропроцессорной системе кандидат технических наук, доцент Новиков Юрий Витальевич.
Операционные системы Подготовила Подготовила студентка студентка 1 курса группы Э курса группы Э-108 Шпудейко Кристина Шпудейко Кристина.
1 ЛЕКЦИЯ 1 ПРЕРЫВАНИЯ Прерывание – инициируемый определенным образом процесс, временно переключающий микропроцессор на выполнение другой программы с последующим.
Встроенные Системы Часть 4. Шины, память, кэш, DMA Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Лекция 4. Режимы работы микропроцессора. Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит.
Учебный курс Основы операционных систем Лекция 11 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Функции замера времени.
Разработка аппаратно-программных средств имитационного комплекса моделирования микропроцессора Выполнил: студент 515 группы МФТИ Иванов С.С Научный руководитель:
1 Микропроцессорные системы. 2 Основные термины Процессор обработчик и вычислитель, выполняющий все операции над кодами и сигналами; Программа набор управляющих.
Проектирование центральных и периферийных устройств Преподаватель: Мельников Максим Игоревич.
Устная работа. Вопрос 1. Что такое архитектура ЭВМ? 1. Внутренняя организация ЭВМ. 2. Это технические средства преобразования информации. 3. Это технические.
Терминология Микропроцессор (МП) - программно-управляемое устройство, осуществляющее процесс цифровой обработки информации и управления и построенное на.
Тема 1. Общие вопросы организации микропроцессорных систем.
Арбитры в мультипроцессорных системах. Арбитры Используются для разрешения конфликтных ситуаций на аппаратном уровне Арбитры принимают от процессоров.
Состав ПК Компьютерная система Аппаратная часть – технические устройства Программное обеспечение - это программы (команды, записанные последовательно).
Транксрипт:

Имитационное моделирование в исследовании и разработке информационных систем Лекция 2 Кафедра АСВК, Лаборатория Вычислительных комплексов с.н.с. Бахмуров Анатолий Геннадьевич Наблюдение за работой ИС

Industrial Engineering - EMJАнтоненко В.А. Волканов Д.Ю Содержание лекции Наблюдение за работой системы –Аппаратные наблюдатели –Программные наблюдатели –Анализ результатов наблюдения Роль наблюдения в ходе отладки программы

Отладка программы (или управляющей системы) Наблюдение за поведением системы Проверка соблюдения заданных свойств поведения Воздействие на систему Программные и аппаратные наблюдатели

Аппаратные наблюдатели Встроенные в аппаратуру вич. сист. Отладочные регистры процессора JTAG Универсальные внешние Электронный (цифровой) осциллограф Логический анализатор Специализированные Анализаторы периферийного интерфейса

Отладочные регистры на x86 6 регистров: DR0-DR3,DR6,DR7 Точки останова (4 шт.): по чтению; по записи и чтению; по выполнению; по обращению к порту ввода-вывода. Нельзя задать условие по диапазону адресов

Встроенные отладочные средства (JTAG – Joint Test Action Group) Набор специальных блоков в составе ИС (существенно зависит от типа ИС) Управление этими блоками по интерфейсу JTAG Возможность разрывать связи между блоками ИС, устанавливать заданные значения на разорванных связях Управление микропроцессором в целях отладки: точки останова, просмотр и запись регистров

Универсальные наблюдатели Индикаторы Электронный осциллограф Непрерывные и дискретные сигналы Обычно 1-4 канала Непрерывная и ждущая развертка Задержка запуска развертки Логический анализатор Цифровой сигнал Десятки-сотни каналов Задание условий запуска и окончания регистрации

Шинный интерфейс Объединяет несколько устройств (абонентов) (десятки-сотни) Один набор сигнальных линий для обменов между всеми абонентами (есть исключения для служебных линий) В каждый момент времени возможна передача только одним абонентом Процедура арбитража для избежания конфликтов Стандартизованы: протоколы, электрические и механические характеристики

Анализаторы шины Гранит-ВТ Silicon Control Inc Curtiss-Wright Electronics systems (быв. VMETRO) LeCroy Inc Tektronix Inc VME, PCI, PCI-Express и т.д. Ethernet, USB, LPT Доп. входы ПО отображения и управления x86-windows

Настройки анализатора шины Условия начала и окончания регистрации Что регистрировать (фильтр) Как отображать

Вид 1: таблица обменов

Вид 2: временная диаграмма

Выбор событий для регистрации Регистрация обменов Регистрация сигналов Выбор отдельных сигналов Условие начала регистрации Условие записи сигнала (фильтр)

Выбор событий для регистрации (2)

Выбор событий (3) Элементарное событие Условие на состояние групп сигналов шины (=,, от.. до) Ограниченное число событий (8, 32) Выражение над событиями (И, ИЛИ, НЕ) Конечный автомат (8 состояний) Условие перехода в новое состояние Что записывать, находясь в данном состоянии Возбуждать ли триггер Положение триггера относительно буфера

Анализатор: интерфейс пользователя Прокрутка Измерение интервалов времени Фильтр по группам сигналов шины Поиск по группам сигналов шины Сохранение трассы Сравнение трасс Программное управление (API)

Анализ производительности Загруженность BusBusy, BusIdle, DataPhase, WaitState Пропускная способность Все обмены, или по приоритетам По диапазонам адресов Запаздывание Master от выставления адреса до первого слова данных Target от запроса первого слова данных до выставления Arbitration от запроса до разрешения

Имитация абонента шины Инициатор (master) Адрес, длина Режим (пословный, пакетный) Запись, чтение, запись с проверкой Подчиненное устройство (target) Диапазон адресов Число тактов ожидания Ответ (OK, retry, fail) Инициализация памяти Просмотр и сохранение

Имитация протокола шины

Программные наблюдатели: уровень операционной системы Трассировка системных вызовов % strace /bin/cat // Динамическая загрузка open("/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\226\1\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size= ,...}) = 0 mmap2(NULL, , PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb75a0000 mmap2(0xb , 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a4) = 0xb mmap2(0xb , 10972, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb close(3) = 0

Вывод strace(2) read(0, "fkjdfkjfd\n", 32768) = 10 write(1, "fkjdfkjfd\n", 10) = 10 read(0, "sdcdscdsv\n", 32768) = 10 write(1, "sdcdscdsv\n", 10) = 10 read(0, "fbfb\n", 32768) = 5 write(1, "fbfb\n", 5) = 5 read(0, "", 32768) = 0 close(0) = 0 close(1) = 0 close(2) = 0 exit_group(0) = ?

Трассировка библиотечных функций % ltrace /bin/cat 2> ltrace.out __libc_start_main(0x , 1, 0xbfb66534, 0x80500d0, 0x getpagesize() = 4096 strrchr("/bin/cat", '/') = "/cat" setlocale(6, "") = "en_US.UTF-8" bindtextdomain("coreutils", "/usr/share/locale") = "/usr/share/locale" textdomain("coreutils") = "coreutils" __cxa_atexit(0x804a2f0, 0, 0, 0xb7769ff4, 0) = 0 getopt_long(1, 0xbfb66534, "benstuvAET", 0x , NULL) = -1 __fxstat64(3, 1, 0xbfb6641c) = 0 __fxstat64(3, 0, 0xbfb6641c) = 0

Трассировка библиотечных функций (2) posix_fadvise64(0, 0, 0, 0, 0) = 0 malloc(36863) = 0x097e0890 read(0, "qwerty\n", 32768) = 7 write(1, "qwerty\n", 7) = 7 read(0, "", 32768) = 0 free(0x097e0890) = close(0) = 0 exit(0

Время в операционной системе #include struct timespec { time_t tv_sec; int tv_usec; // нано }; struct tm {} time() sleep()

Измерение времени в ОС (2) /usr/bin/time myfile real user sys Команда rdtsc в x86 – число тактов ЦП с момента запуска

Профилирование программ: gprof % gcc –pg a.c % a.out(создаётся gmon.out) % gprof Выборка 100 раз в секунду Число вызовов функций Время, проведённое в каждой функции Граф вызовов

valgrind % valgrind myfile % valgrind -- tool=cachegrind myfile Проверка некоторых условий корректности работы с указателями и malloc/free Анализ работы гипотетической кэш-памяти Построение графа вызовов функций Возможность добавления инструментов

Лабораторная работа 1 Измерение времени выполнения программы (файл b.c) Используйте команду time rdtsc (как вставлять asm в Си?) Повторите замер несколько раз Как уменьшить разброс результатов? Поменяйте порядок обхода массива. Почему изменилось время? Попробуйте разные уровни оптимизации компилятора

Программа для замера времени выполнения #include #define SIZE float a[SIZE][SIZE]; void main( int argc, char **argv ) { float b; int i,k; b=0; for( i = 0; i < SIZE; i++ ) for( k = 0; k < SIZE; k++ ) b = b + a[i][k]; }

Варианты задания Замер любых других временных характеристик вичислительной системы: Объяснение, как проводилось измерение; меры по снижению погрешности; Результаты; Изменение настроек, что получилось и почему?