Устройство для измерения временных параметров программ
УСТРОЙСТВО ДЛЯ ИЗМЕРЕНИЯ ВРЕМЕННЫХ ПАРАМЕТРОВ ПРОГРАММ, содержащее датчик времени, блок памяти , два регистра, элемент И, первый элемент ИЛИ и блок уставок, соединенный первым выходом с входом уп- . равления первого регистра, отличающееся тем, что, с целью повьвиения быстродействия, в него введены накопитель, мультиплексор, вычитающее .устройство, второй элемент ИЛИ, h третьих элементов ИЛИ, формирователь импульсов, дешифратор и счетчик, связанный выходом с входом управления датчика времени, подключенного выходом к входу управления накопителя, соединенного ддресными входами с информационными выходами блока памяти и с входами дешифратора , связанного выходами с установочными входами второго регистоа , подключенного выходами к входам элемента И, соединенного выходом с первым входом второго элемента ИЛИ i .и со счетным входом счетчика, связанного разрядными входами с вторыми выходами блока уставок, срединенного третьими выkoдaми с разрядными входами первого регистра, подключенного выходами к первым входам вычитающего устройства, связанного выходами старших разрядов с входами первого элемента ИЛИ, выходами младших разрядов - с первыми входами третьих элементов ИЛИ, соединенных вторыми входами с выходом первого элемента ИЛИ, а выходами - с первыми входами мультиплексора, связанного выходами с адресными входами блока памяти, подключенного инфо жацион СО . нами входами к четвертым выходам блока уставок, связанного пятыми выходами с вторыми входами мультиплексора , подключенного управляющим входом к входу записи блока памяти и к шестому выходу блока уставок, соединенного с седьмыми и восьмыми выходами соответственно с синхронизирующим входом счетчика и с згоръал 00 входом второго элемента ИЛИ, под ключенного выходом к входу формирователя импульсов, связанного выходом с установочным входом второго регистра, причем вторые входы вычи;0 такяцего устройства и синхронизирующий йход датчика времени соединены соответственно с информационными входами и с синхронизирующим входом устройства.
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТКИ ЕСКИХ
РЕСПУБЛИК
4(51) G 05 В 15/02
ГОСУДАРС ГВЕННЫЙ НОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И OTHPblTHA опислнис изоьгктсния /", К АВТОРСКОМУ СВИДИ ЕЛЬСТВУ
I (21) 3515252/24-24 . (22) 18.10.82 (46) 23.01,85. Бюл. 9 3 (72) В.Н.Судариков и О.Х.Белов (53) 621.396 (088.8) (56) 1. Dennis -G, Ferri and Gregg
С.Giesler. Pfvlosophy.of à compu« ter-automated counting, system.
"ISSE Transaction on Nuclear Selence", vol. N-26, по. 4, Aug. 1979, р, 4592, fig. 2.
2. лекторское свидетельство СССР
Р 712810,кл. G 04 F 10/00,1980 (про" тотип). (54)(57) УСТРОЙСТВО ДЛЯ ИЗМЕРЕНИЯ
ВРЕМЕННЫХ ПАРАМЕТРОВ ПРОГРАММ, содержащее датчик времени, блок памяти, два регистра, элемент И, первый элемент ИЛИ и блок уставок, соединенный первым выходом с входом управления первого регистра, о т л ич а ю щ е е с я тем, что, с целью повышения быстродействия, в него введены накопитель, мультиплексор, вычитающее,устройство, второй элемент ИЛИ, И третьих элементов ИЛИ, формирователь импульсов,. дешифратор и счетчик, связанный выходом с входом управления датчика времени, подключенного выходом к входу управления накопителя, соединенного ддресными входами с информационными выходами блока памяти и с входами дешифратора, связанного выходами с установочными входами второго регистоа, подключенного выходами к входам
„.SU„„A элемента И, соединенного выходом с .первым входом второго элемента ИЛИ .и со счетным входом счетчика, связанного разрядными входами с вторыми выходами блока уставок, соединенного третьими выходами с разрядными входами первого регистра, подключенного выходами к первым входам вычитающего устройства, связанного выходами старших разрядов с входами первого элемента ИЛИ, выходами младших разрядов — с первыми входами третьих элементов ИЛИ, соединенных вторыми входами с выходом первого элемента ИЛИ, а выходами — с первыми входами мультиплексора, связанного выходами с адресными входами бло- Q ка памяти, подключенного информационными входами к четвертым выходам блока уставок, связанного пятыми выходами с вторыми входами мультиплексора, подключенного управляющим входом к входу записи блока памяти и к Я шестому выходу блока уставок, соединенного с седьмыми и восьмыми выходами соответственно с синхронизирующим входом счетчика и с вторым входом второго элемента ИЛИ, подключенного выходом к входу формирователя импульсов, связанного выходом с установочным входом второго регистра, причем вторые входы вычитающего устройства и синхронизирую" щий вход датчика времени соединены соответственно с информационными входами и с синхронизирующим входом устройства.
1136109
Изобретение относится к вычислительной технике и,может быть использовано при изучении функционирования операционных систем для измерения временного вклада отдельных фрагментов программ в общее время ре- 5 шения задачи.
Известна устройство, содержащее датчик времени, блок памяти, процессор и периферийные устройства.
Известное устройство позволяет с помощью датчика времени, блока памяти и процессора программными средствами определить. временной вклад различных областей программ в общее время решения задачи (1) . 15
Однако введение служебных операций вносит искажения (особенно существенные при наличии быстродействующих периферийных устройств и ко- ротких областей программ) в функционирование операционной системы, и известное устройство не позволяет получить исчерпывающих и достоверных сведений о функционировании операционной системы в реальном времени.
Наиболее близким к изобретению является устройство, содержащее датчик времени (генератор опорной частоты, соединенный через таймер с одним входом элемента И, другой вход которого является входом управления датчика времени), блок памяти, два управляемых регистра (регистр приема и регистр сравнения), входы которых соединены с выходами соответст- 35 вующих групп элементов И, одни входы которых являются входами управления регистра, и блок уставок (блок выработки команд), первый выход которого соединен с входом управления 40 первого регистра.
Кроме того, в известном устройстве имеется процессор, схема сравнения„ блок выдачи результата и элементы И. Входной код, поступающий, например, с разрядных выходов счетчика команд исследуемой ЭВМ, по команде процессора заносится в регистр приема и схемой сравнения сравнивается с кбдом, принятым ранее, который хранится в ре.истре сравнения. 50
При несовпадении кодов по сигналам процессора и командам, вырабатываемым блоком управления, процессор считывает код иэ регистра приема, считывает показания датчика времени 55 и определяет по ним время, в течение которого данный код присутствовал на входах устройства, извлекает из соответствующей ячейки блока памяти измеренное ранее для данного 60 кода суммарное значение времени,. в течение которого он присутствовал на входах, суммирует эти величины и записывает результат в ту же ячейку, блока памяти, после чего состояние регистра сравнения обновляется, и производится прием следующего кода.
Таким образом, в блоке памяти .; фиксируется суммарное время, в течение которого счетчик команд исследуемой ЭВМ находился в данном со,,стоянии. Для однобайтовых команд ЭВМ это соответствует времени, в течение которого выполнялась команда, а для двух-, трех- или четырехбайтовых команд — времени выполнения соответствующих их частей, поэтому по окончании измерений для определения временного вклада интересующих программиста функционально законченных областей программы процессором производится интегрирование содержимого блока памяти в пределах, определяемых границами этих областей, и вывод информации через блок выдачи результата для дальнейшего анализа функционирования и корректировки, .программы (2) .
Быстродействие известного устройства Т определяется следующим выражением .
ta +tel +t +t + - +t
СЧ СЧ2 )ИЧ4 ™
+ +1 +t
В 4,В 3aq ОБН где ta — временные затраты на прием информации входным регистром;
t — временные затраты на обраср ботку информации схемой сравнения; — временные затраты на считывание кода иэ регистра приема;
С „ — временные затраты на считывание показаний датчика времени; временные затраты на вычисвыч.1 ление дифференциального значения времени присутствия кода;
t, — временные затраты на чтение интегрального значения времени из блока памяти; временные затраты на вычисление интегрального значения времени присутствия кода; временные затраты на запись интегрального значения времени в блок памяти; — временные затраты на перезапись информации в регистр сравнения.
Недостатком известного устройства является его низкое быстродействие.
Цель изобретения — повышение быстродействия, Поставленная цель достигается тем, что в устройство для измерения временных параметров программ, содержащее датчик времени, блок памя1136109
60
65 ти, два регистра, элемент И, первый элемент ИЛИ и блок уставок, соединенный первым выходом с входом управления первого регистра, введены накопитель, мультиплексор, вычитающее устройство, второй элемент HJIH, 5 и третьих элементов ИЛИ, формирователь импульсов, дешифратор и счетчик, связанный выходом с входом управления датчика времени, подключенного выходом к входу управления на" 10 копителя, соединенного адресными входами с информационными выходами блока памяти и с входами дешифратора, связанного выходами с устано-. вочными входами второго регистра, пбдключенного выходами к входам элемента И, соединенного выходом с первым входом второго элемента ИЛИ и со счетным входом счетчика, связанного разрядными входами с вторы- 20 ми выходами блока уставок, соединенного третьими выходами с разрядными входами первого регистра, подключенного выходами к первым входам вычитающего устройства, связанного 25 выходами старших разрядов с входами первого элемента ИЛИ, выходами младших разрядов — с первыми входами третьих элементов ИЛИ, соединенных вторыми входами с выходом первого элемента ИЛИ, а выходами — с первыми входами мультиплексора, связанного выходами с адресными входами блока памяти, подключенного информационНыми входами к четвертым выходам блока уставок, связанного пятыми выходами с вторыми входами мультиплексора„ rro ro eHHoro rrp Jr ro HM аходом к входу записи блока памяти и к шестому выходу блока уставок, соединенного седьмыми и восьмыми выходами 40 соответственно с синхронизирующим входом счетчика и с вторым входом, второго элемента ИЛИ, подключенного выходом к входу формирователя импульсов, связанного выхбдом с уста- 45 новочным входом второго регистра, причем вторые входы вычитающего устройства и синхронизирующий вход датчика времени соединены соответственно с информационными входами и с 50 синхронизирующим входом устройства.
На фиг.1 показана структурная схема устройствами на Фиг.2 — временные диаграммы, иллюстрирующие его . работу. устройство содержит датчик 1 времени, накопитель 2, вычитающее устройство 3, третьи элементы ИЛИ 4, первый элемент ИЛИ 5, мультиплексор 6, блок 7 памяти, дешифратор 8, формирователь 9 импульсов, второй регистр-10, элемент И 11, второй элемент ИЛИ 12, первый регистр 13, счетчик 14, блок 15 уставок. Входы устройства: информационные 16 и (синхронизирующий 17.
Блок уставок содержит выходы: первый 18, вторые — 19, третьи — 20,, четвертые — 21, пятые — 22, шестой
23, седьмой — 24, восьмой — 25, вход 26 логической единицы, ключи 27 — 30 и переключатель 31.
Перед началом работы из рабочей программы, составленной в машинных кодах и позволяющей ббслужить определенный набор периферийных устройств, выделяется часть, функционирующая в реальном времени и включающая в себя операции непосредственно по сбору и обработке входной информации ° Выделенная часть программы объемом не более (2"-1) слов разбивается на (2 -1) ключевых обласR тей, статистика использования которых в операционной системе определяет ее производительиость. Каждой из выделенных областей присваивается порядковый номер L в пределах от 0 до (2 -2)) и определяются их начальR ные и конечные адреса С„ и Э, а так-. же фиксируется адресный адрес Ао, с ,которого начинается программа реального времени. Ячейкам памяти, отведенным под константы и массивы данных, а также рабочим, ячейкам номер L не присваивается. Всем остальным областям программы, не функционирующим в реальном времени, присваивается номер L = 2 -1, Методику разбиения программы поясним примером (табл. 1) . Из общей программы работы операционной системы, находящейся в исследуемой ЭВИ с шестнадцатиреечной адресацией и занимающей объем 32К слов, выделяется программа реального времени, занимающая объем 8К слов и размещаемая с адреса А„ = 2000ц.
Из.данной программы (для восьмиразрядного блока 7 памяти) выделяем 255 ключевых областей — подпрограмму ожидания прерывания (Ь = О), подпрограммы считывания данных из периферийных устройств, подпрограммы обработки информации и т.п.
Для подготовки устройства к работе необходимо занести информацию в блок 7 памяти, регистры 13, 10 и,в счетчик 14. С помощью ключей 29 блока 15 уставок установим двоичный код числа L, который поступает на информационные входы блока 7 памяти.
На переключателях 28 блока уставок установим двоичный код числа (С -Ап), который поступает на входы мультиплексора 6. С помощью переключателя 31 блока уставок с шины 26 сигнал логической "1" передается на вход управления мультиплексора,б и на вход записи блока 7 памяти, вследствие чего в последний по адресу
1136109
10 (C -А ) записывается число Ь. Аналогичйым образом, последовательно изменяя состояния ключей 28 и 29 в соответствии с предварительным разбиением программы по всем адресам в пределах от (С -А,) до (Dz-Ао) в блок 7
5 памяти записывается соответствующее число Ь. Во все оставшиеся ячейки блока 7 памяти записывается число (2"-1). Запись информации применительно к рассматриваемому примеру приведена в табл. 2.
На переключателях 27 блока 15 уставок установим двоичный код числаА>, который поступает на разрядные входы регистра 13, С помощью переключателя 31 с шины 26 логическая "1" поступает на вход управления регистра 13, вследствие чего в последнем записывается число Ао.
Информация с регистра 13 поступа- 20 ет на входы вычитающего устройства 3, на информационные входы которого с информационных входов 16 в данном случае поступает двоичный код чис ла "0". Вычитающее устройство 3 осуществляет вычитание числа, присутствующего на его входах, соединенных с выходами регистра, из числа, присутствующего íà его входах 16, поэтому вследствие отрицательного значения разности на его старшем выхо-. де 21 "присутствует логическая "1". поступающая через первый элемент ИЛИ на одни входы всех элементов третьих ИЛИ, вследствие чего на выходах последних генерируется двоичный код числа (2"-1), Информация с выходов третьих элементов ИЛИ поступает на входы мультиплексора б и далее на адресные входы блока 7 памяти, гене- 40 рируя на его выходах двоичный код числа (2 -1), поступающий на входы
И дешифратора 8. Поскольку число состояний дешифратора 8 равно (2 -1), Я на всех его выходах присутствуют сигналы логического "0", поступающие на установочные входы регистра 10. С помощью переключателя 31 блока уставок с шины 26 на вход элемента HJIH 12 поступает логическая "1".
При этом на выходе элемента ИЛИ 12 также устанавливается логическая "1", запускающая формирователь импульсов, импульс с выхода которого через установленный вход устанавливает все разряды регистра 10 в нулевое состоя-55 ние.
На ключах 30 блока уставок устанавливают двоичный код числа (2>-К), поступающий через выходы блока уставок на разрядные входы счетчика 14. g0
С помощью переключателя 31 с шины 19 логическая "1" поступает на синхронизирующий вход счетчика 14, вследствие чего в последний записывается двоичный код числа (2 -К).
Устройство работает следующим образом.
Состояние N счетчика команд иссле" дуемой ЭВМ, определяющее адрес исполняемой команды, через информационные выходы 18 поступает на входы вычитающего устройства 3, на выходных шинах которого оорМируется двоичный код числа N-A
Если величина (2 -1)>(N-A )>0, то с выходов элементов ИЛИ 4 через мультиплексор 6 число (N-À ) поступает ,на адресные входы блока 7 памяти, причем, когда.Р„»(N.-A()) С, с информационных выходов блока 7 памяти считывается соответствующее число L, которое через дешифратор 8 с помощью соответствующего установочного входа регистра 10 вызывает срабатывание его L-го разряда. Кроме того, с информационных выходов блока 7 памяти число Ь поступает на адресные входы накопителя 2., на вход управления которого поступают импульсы с выхода датчика 1 времени (фиг.2а), работа которого синхронизируется внешним сигналом с синхронизирующего входа 17.
Таким образом, время нахождения адресного счетчика исследуемой ЭВМ в области программы с номером Г (фиг.2о) фиксируется в соответствующих каналах накопителя ? (фиг,2в,г,g, ..
Если величина 0 >(Н-А )>(2 -1), что возможно при подготовке системы и выполнении других операций, не относящихся к н6менклатуре операций реального времени (адреса 0000 —
1ГРР табл.1), логические "1" с выходов вычитающего устройства 3 через элемент ИЛИ 5 поступают на входы элементов ИЛИ 4, на выходах которых образуется код числа (2"-Ц, поступающий через мультиплексор б на адресные входы блока 7 памяти. В этом случае с информационных выходов блока 7 памяти считывается число (2 -1), К
1 определяющее последний канал накопителя 2, выделенный для изменения времени нахождения исследуемой операционной системы вне области программы реального времени. В дешифраторе 8 выход, соответствующий числу (2"-1), отсутствует.
При установке в единичное состояние всех разрядов регистра 10, что соответствует прохождению всех L выделенных областей (без учета
2 -1) программы, на выходе элемента И устанавливается логическая "1", запускающая через элемент PJIH 12 формирователь 9, импульс которого через установочный вход устанавливает регистр 10 в исходное состояние. Вместе.с тем импульс с выхода элемента И 11 поступает на счетный вход счетчика, изменяя его состояние. Если все (, областей прог1136109 раммы (без учета области = 2"-1II обработали k раз., счетчик 14 пере- полняется, и сигнал с его выхода поступает на вход управления датчика 1 времени и прекращает его работу.
Таким образом, в накопителе 2 формируется гистограмма времени, отражающая временной вклад ть каждой из областей программы в общее время решения задачи, с помощью гисто-. граммы могут быть определены и про- 10 анализированы "критические" области программы, вносящие наибольший вклад в общее время решения задачи, а также величина "простоя" операционной системы из-за отсутствия информации f5 с периферийных устройств вследствие неоптимальной организации их взаимного программного взаимодействия. На основании анализа может быть произведена переработка программного обес-20 печения, относящегося к программам реального времени, с целью сокращения объема "критических" областей программы, минимизации их временного вклада путем введения банка про->5 межуточных данных, исключения отдельных расчетов за счет использования таблиц и другими известными в программировании методами.
Использование в предлагаемом устройстве новых элементов, а именно
30 накопителя, мультиплексора, вычитающего устройства, второго элемента ИЛИ, п третьих элементов ИЛИ, формирователя импульсов, дешифратора счетчика в их связи с известными З5 узлами отличает его от.известного
Таблица 1
255
0000 IFA0
1РА ТРРР1
255
Ожидание прерывания
000
001 2003 2012
002 2013 2022
2133 2142,4
2143 2188 6
2189 22А2 к+1
Рабочие ячейки
Назначение области программы
Подготовка работы операционной системы
Пуск служебных устройств
Считывание данных с периферийного устройства
Считывание данных с периферийного устройства
Считываиие данных с периферийного устройства
Поиск источника прерывания устройства, так как позволяет исключить программные операции по обработке входной информации и тем самым существенно повысить быстродействие.
Быстродействие предлагаемого устройства, содержащего датчик времени типа БТЦ-99, накопитель типа
АИ-256 с временем преобразования
1 мкс, выполненное на элементах
К155ИПЗ,.16-разрядное вычитающее устройство с быстродействием 0,3 мкс, выполненное на элементах К155КП2, мультиплексор с быстродействием "
40 нС, блок памяти типа БЗЦ-93 объемом 8К байт с быстродействием
0,25 мкс, регистры с быстродействием
60 нс, выполненные на элементах
К155ТМ2, элементы ИЛИ с быстродействием 25 нс, выполненные на электросхемах К155ЛЛ1,.элемент И с быстродействием 50 нс, выполненный на элементах К155ЛА2, дешифратор с быстродействием 50 нс, выполненный на элементах К155ИДЗ, четырехразрядный счетчик с быстродействием 25 нс, выполненный на элементах К155ИЕ7, формирователь импульсов, выполненный на элементах К155АГ1, и блок уставок, выполненный на переключателях типа П2К, составляет приблизительно 2 мкс, тогда как быстродействие известного устройства, логические элементы которого также выполнены на микросхемах серии К155, а в качест ве процессора исжользуется микропроцессорный набор К587, составляет приблизительно 8 команд 5 мкс =
40 мкс.
2000, 2002 Начало програм14 мы обслуживания периферийных устройств
1136109
К+2
254
255
40О1<6 7FFF
255
Блок 7 памяти
Число
0000
0001
001 3 6 - 0022
0002 .
K+1
К + 2
254
255
Обработка данных
Обработка данных
Останов служебных устройств
Расчет выходных параметров
Диапазон адресов
0000 6 — 000216
0003<6 - 0012<6
0133 6 - 0142 6
0143,6 — 0188ц
02АЗ 6 — 02А 6
1F91 6 — 1FF <6
1FF1<6 - 1ГГГЦ
22A3() 22FA<6
3 91 6 3FFO<6
3 1 4060
Таблица 2
Продолжение табл. 2
Конец программы обслуживания пе-риферийных устройств
1136109
2О 0
/(ц /Р7
К 1 К<2 /(+,3
6 789 ЮТ233Я 56П)В
123Ч5
12 3Ч
5б 789 Ю
I2 345 6
/23
958789
Заказ 10284/34 Тираж 8бЗ Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб., д. 4/5
Филиал ППП "Патент", r. Ужгород, ул. Проектная, 4
Составитель A.Ëèøàíñêèé
Редактор P.Öèöèêà Техред 3.Палий Корректор C,Øåêìàð т






