СПОСОБ И УСТРОЙСТВО ДЛЯ ВЫПОЛНЕНИЯ ИНСТРУКЦИЙ ПРОЦЕССОРА НА ОСНОВЕ ДИНАМИЧЕСКИ ИЗМЕНЯЕМОЙ ЗАДЕРЖКИ

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