ОПРЕДЕЛЕНИЕ ПРОФИЛЯ ПУТИ, ИСПОЛЬЗУЯ КОМБИНАЦИЮ АППАРАТНЫХ И ПРОГРАММНЫХ СРЕДСТВ

1. Устройство, содержащее:
память для хранения множества идентификаторов пути, при этом каждый идентификатор пути из множества идентификаторов пути содержит данные, указывающие путь выполнения, сигнатуру пути, идентифицирующую один или более блоков инструкций, и идентификатор инструкции, идентифицирующий первую инструкцию в первом блоке инструкции из одного или более блоков инструкций;
процессор, соединенный с возможностью обмена данными с памятью, причем процессор выполнен с возможностью:
принимать первый идентификатор пути;
определять, соответствует ли первый идентификатор пути имеющемуся идентификатору пути из множества идентификаторов пути;
выполнять последовательное приращение счетчика, связанного с имеющимся идентификатором пути, когда первый идентификатор пути соответствует имеющемуся идентификатору пути; и
добавлять первый идентификатор пути к множеству идентификаторов пути, когда первый идентификатор пути не соответствует имеющемуся идентификатору пути из множества идентификаторов пути.
2. Устройство по п. 1, в котором процессор дополнительно выполнен с возможностью:
определять, находится ли идентификатор инструкции в пределах диапазона идентификаторов инструкций.
3. Устройство по п. 1, в котором процессор выполнен с возможностью выполнять последовательное приращение счетчика путем определения, достиг ли счетчик максимального значения; и
если счетчик не достиг максимального значения, выполнять последовательное приращение счетчика; и
обновлять насыщенное значение, когда счетчик достигает максимального значения после последовательного приращения счетчика.
4. Устройство по п. 1, в котором процессор выполнен с возможностью добавлять первый идентификатор пути к множеству идентификаторов пути путем:
определения, имеется ли место среди множества идентификаторов пути для добавления первого идентификатора пути; и
добавления первого идентификатора пути, когда имеется место среди множества идентификаторов пути.
5. Устройство по п. 1, в котором процессор содержит упомянутое запоминающее устройство.
6. Устройство по п. 1, в котором процессор дополнительно выполнен с возможностью:
принимать данные, указывающие один или более идентификаторов пути; и
удалять упомянутые один или более идентификаторов пути из множества идентификаторов пути на основе упомянутых данных.
7. Устройство по п. 1, в котором процессор дополнительно выполнен с возможностью:
принимать данные, указывающие один или более идентификаторов пути; и
выполнять сброс одного или более счетчиков или одного или более насыщенных значений для упомянутого одного или более идентификаторов пути на основе упомянутых данных.
8. Устройство по п. 1, в котором процессор дополнительно выполнен с возможностью:
принимать данные, указывающие один или более идентификаторов пути; и
копировать упомянутый один или более идентификаторов пути во вторую память.
9. Способ, содержащий этапы, на которых:
принимают первый идентификатор пути;
определяют, соответствует ли первый идентификатор пути имеющемуся идентификатору пути из множества идентификаторов пути, при этом каждый идентификатор пути из множества идентификаторов пути содержит данные, указывающие путь выполнения, сигнатуру пути, идентифицирующую один или более блоков инструкций, и идентификатор инструкции, идентифицирующий первую инструкцию в первом блоке инструкции из одного или более блоков инструкций;
выполняют последовательное приращение счетчика, связанного с имеющимся идентификатором пути, когда первый идентификатор пути соответствует имеющемуся идентификатору пути; и
добавляют первый идентификатор пути к множеству идентификаторов пути, когда первый идентификатор пути не соответствует имеющемуся идентификатору пути из множества идентификаторов пути.
10. Способ по п. 9, дополнительно содержащий этап, на котором:
определяют, находится ли идентификатор инструкции в пределах диапазона идентификаторов инструкций.
11. Способ по п. 9, в котором на этапе последовательного приращения счетчика:
определяют, достиг ли счетчик максимального значения, и
если счетчик не достиг максимального значения выполняют последовательное приращение значения счетчика, и
обновляют насыщенное значение, когда счетчик достигает максимального значения после последовательного приращения счетчика.
12. Способ по п. 9, в котором на этапе добавления первого идентификатора пути к множеству идентификаторов пути:
определяют, имеется ли место среди множества идентификаторов пути для добавления первого идентификатора пути; и
добавляют первый идентификатор пути, когда имеется место среди множества идентификаторов пути.
13. Способ по п. 9, дополнительно содержащий этапы, на которых:
принимают данные, указывающие один или более идентификаторов пути; и
выполняют один или более этапов из следующих этапов:
копируют упомянутый один или более идентификаторов пути во вторую память;
удаляют упомянутый один или более идентификаторов пути из множества идентификаторов пути на основе упомянутых данных; или
выполняют сброс одного или более счетчиков или одного или более насыщенных значений для упомянутого одного или более идентификаторов пути на основе упомянутых данных.
14. Энергонезависимый машиночитаемый носитель информации, содержащий данные, которые при обращении к ним процессора вызывают выполнение процессором операций, содержащих:
прием первого идентификатора пути;
определение, соответствует ли первый идентификатор пути имеющемуся идентификатору пути из множества идентификаторов пути, при этом каждый идентификатор пути из множества идентификаторов пути содержит данные, указывающие путь выполнения, сигнатуру пути, идентифицирующую один или более блоков инструкций, и идентификатор инструкции, идентифицирующий первую инструкцию в первом блоке инструкции из одного или более блоков инструкций;
последовательное приращение счетчика, связанного с имеющимся идентификатором пути, когда первый идентификатор пути соответствует имеющемуся идентификатору пути; и
добавление первого идентификатора пути к множеству идентификаторов пути, когда первый идентификатор пути не соответствует имеющемуся идентификатору пути из множества идентификаторов пути.
15. Энергонезависимый машиночитаемый носитель информации по п. 14, в котором операции дополнительно содержат:
определение, находится ли идентификатор инструкции в пределах диапазона идентификаторов инструкций.
16. Энергонезависимый машиночитаемый носитель информации по п. 14, в котором последовательное приращение счетчика содержит:
определение, достиг ли счетчик максимального значения, и
если счетчик не достиг максимального значения, выполняют последовательное приращение счетчика; и
обновление насыщенного значения, когда счетчик достигает максимального значения после последовательного приращения счетчика.
17. Энергонезависимый машиночитаемый носитель информации по п. 14, в котором добавление первого идентификатора пути к множеству идентификаторов пути содержит:
определение, имеется ли место среди множества идентификаторов пути для добавления первого идентификатора пути; и
добавление первого идентификатора пути, когда имеется место среди множества идентификаторов пути.
18. Энергонезависимый машиночитаемый носитель информации по п. 14, в котором операции дополнительно содержат:
прием данных, указывающих один или более идентификаторов пути; и
выполнение одной или более операций из следующих операций:
копирование упомянутого одного или более идентификаторов пути во вторую память;
удаление упомянутого одного или более идентификаторов пути из множества идентификаторов пути на основе упомянутых данных; или
выполнение сброса одного или более счетчиков или одного или более насыщенных значений для упомянутого одного или более идентификаторов пути на основе упомянутых данных.
19. Устройство содержащее:
средство для выполнения способа по любому из пп. 9-13.
20. Способ, содержащий этапы, на которых:
идентифицируют область инструкций для определения профиля;
вставляют инструкции определения профиля в упомянутую область инструкций;
принимают множество идентификаторов пути, причем каждый идентификатор пути из множества идентификаторов пути содержит данные, указывающие путь выполнения, сигнатуру пути, идентифицирующую один или более блоков инструкций, и идентификатор инструкции, идентифицирующий первую инструкцию в первом блоке инструкции из одного или более блоков инструкций, при этом упомянутое множество идентификаторов пути генерируют при выполнении процессором инструкций определения профиля; и
генерирует профиль пути на основе множества идентификаторов пути.
21. Способ по п. 20, дополнительно содержащий этап, на котором:
предоставляют данные, указывающие один или более идентификаторов пути, при этом одно или более значений счетчика или насыщенных значений, связанных с упомянутым одним или более идентификаторами пути, подлежат изменению.
22. Способ по п. 20, в котором на этапе вставки инструкций определения профиля:
идентифицируют в области инструкций множество блоков инструкций места назначения, и
вставляют маркирующие инструкции в упомянутое множество блоков инструкций места назначения.
23. Способ по п. 20, в котором на этапе вставки инструкций определения профиля:
идентифицируют блок начальной инструкции и один или более блоков конечных инструкций в области инструкций; и
вставляют начальную инструкцию в упомянутый блок начальной инструкции и одну или более конечных инструкций в упомянутый один или более блоков конечных инструкций.
24. Способ по п. 20, дополнительно содержащий этап, на котором:
копируют упомянутое множество идентификаторов пути в память.
25. Устройство содержащее: средство для выполнения способа по любому из пп. 20-24.