Скачиваний:
15
Добавлен:
01.05.2014
Размер:
70.14 Кб
Скачать

3.2. Расчет времени коррекции функции контрольных точек

Коррекция времени необходима в виду того факта, что вызов функции КТ требует определенных временных затрат, которые вносят искажения в общую картину времени выполнения программы. Коррекция времени производится при инициализации и калибровке ПИМ Sampler(перед запуском исследуемой программы).

На рисунке 1 приведена временная диаграмма снятия замера в КТ.

Рис. 1. Порядок действий при вызове функции КТ.

Обозначения на рис.1: 1 - вход в функцию2 - замер времени t13 - передача управления монитору, снятие отсчета t1 и фиксация места в программе, где производится измерение4 - замер времени t25 - выход из функции и возврат в программу.

Как видно из диаграммы, общая картина времени выполнения программы искажается на время выполнения функции контрольных точек. Также невозможно заранее предсказать длительность участка 3. Это следует из того, что, получив управление, монитор выполняет операции различной длительности. Участки1,2,4и5не содержат ветвлений, имеют фиксированную длительность и могут быть измерены заранее (причем2=4).

Имеется возможность убрать искажение, вносимое вызовом функции контрольных точек. Для этого надо определить время ее выполнения T0.

T0 =1+2+3+4+5 =1+2+(t2 -t1 -4) +4+5 =1+2+5 +(t2 -t1 )

В полученном соотношении участвуют только компоненты фиксированной длительности, а также значения t2 и t1. Интервал времени, равный сумме 1+2+5 следует считать временем коррекции функции контрольных точек или просто временем коррекции. Время коррекции можно определить путем калибровки монитора (рис. 2).

Рис. 2. Диаграмма калибровки монитора.

Выполнив 2 измерения подряд, мы можем определить расходы на передачу значений измерений (T2 - T1). Далее проведем последовательность измерений T3 - T4. Из справедливости равенства

1+ 2+ 3+4 + 5 = (T3 - T4) - (T2 - T1)

вытекает выражение для определения времени коррекции

tкорр= 1 + 2 + 5 = [T4 - T3] - (t2 - t1) + [T2 - T1]

Один раз определив время коррекции, в дальнейшем можно многократно его использовать для уточнения полученных результатов измерения с помощью ПИМ Sampler. Если автоматически точно подобрать время коррекции не удается (это видно по большим значениям измерений времени для коротких фрагментов программы, если время коррекции недостаточно, либо по большому количеству нулевых отсчетов), то следует подобрать подходящее время коррекции ручным способом. Значение времени коррекцииосуществляетсяв тактах.

Например, для AMDAthlon1700 МГц и ОСWindowsXPвремя коррекции равно 6-8 тактов (1,68 – 2,24 мкс) при использовании функции замера времениQueryPerformanceFrequncy, и 12-14 минитиков (10,08 – 11,76 мкс) – при использовании программируемого таймера 8253.