СПОСОБЫ И УСТРОЙСТВО ДЛЯ РАСПОЗНАВАНИЯ ВЫЗОВА ПОДПРОГРАММЫ

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