СПОСОБ И СИСТЕМА МНОГОПОТОЧНОГО ПРОЦЕССОРА С ПЕРЕМЕННЫМ ЧЕРЕДОВАНИЕМ

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. Процессор по п.9, дополнительно содержащий средство для определения по меньшей мере одного запускающего события являющимся сигналом для выполнения обработки переключения по сигналу для переключения с упомянутого первого потока на упомянутый второй поток.
15. Процессор по п.9, дополнительно содержащий средство для определения того, что команда попыталась использовать отсутствующее значение из загрузки в качестве упомянутого по меньшей мере одного запускающего события для выполнения обработки переключения по использованию для переключения с упомянутого первого потока на упомянутый второй поток.
16. Процессор по п.9, дополнительно содержащий:
средство для определения заранее второго запускающего события, чтобы многопоточный процессор переключался с первого потока на второй поток, упомянутое второе запускающее событие определяется переменно и динамическим образом, чтобы оптимизировать производительность многопоточного процессора; и
средство для избирательного и динамического управления тем, управляет ли возникновение упомянутого по меньшей мере одного запускающего события или возникновение упомянутого второго запускающего события переключением многопоточного процессора в обработке из первого потока на обработку из второго потока.
17. Многопоточный цифровой сигнальный процессор для обработки множества потоков, работающих посредством множества процессорных конвейеров, ассоциативно связанных с многопоточным процессором, содержащий:
очередь команд для помещения в очередь команд в множестве потоков, ассоциативно связанных с упомянутым множеством процессорных конвейеров;
логику выдачи, ассоциативно связанную с упомянутой очередью команд для приема упомянутого множества потоков и содержащую логику переключения потоков для определения заранее по меньшей мере одного запускающего события, заставляющего многопоточный процессор переключаться с первого потока на второй поток, причем упомянутое запускающее событие определяется переменно и динамическим образом, чтобы оптимизировать производительность многопоточного процессора;
тракт данных выполнения для обработки первого набора команд из первого потока до возникновения упомянутого запускающего события;
упомянутая логика переключения потоков дополнительно предназначена для переключения многопоточного процессора в обработке из первого потока на обработку из второго потока по возникновению упомянутого запускающего события;
упомянутый тракт данных выполнения дополнительно предназначен для обработки второго набора команд из второго потока до возникновения упомянутого запускающего события;
упомянутая логика переключения потоков дополнительно предназначена для переключения многопоточного процессора в обработке из второго потока на обработку из следующего потока по возникновению упомянутого запускающего события; и
упомянутая очередь команд, упомянутая логика выдачи и упомянутый тракт данных выполнения дополнительно ассоциативно связаны для продолжения этапов обработки и переключения во время работы многопоточного процессора.
18. Процессор по п.17, в котором упомянутая логика выдачи дополнительно содержит:
логику оптимизации, ассоциативно связанную с упомянутой логикой переключения потоков для определения заранее по меньшей мере одного запускающего события, чтобы многопоточный процессор переключался с первого потока на второй поток, связывания упомянутого запускающего события с количеством циклов процессора, при этом упомянутое количество циклов процессора определяется, чтобы оптимизировать производительность многопоточного процессора; и
логику подсчета циклов процессора для подсчета упомянутого количества циклов процессора для определения, равно ли упомянутое подсчитанное количество циклов процессора упомянутому количеству циклов процессора, в силу этого устанавливающую наличие упомянутого запускающего события.
19. Процессор по п.17, в котором упомянутая логика выдачи дополнительно содержит:
логику оптимизации, ассоциативно связанную с упомянутой логикой переключения потоков для определения заранее по меньшей мере одного запускающего события, чтобы многопоточный процессор переключался с первого потока на второй поток, причем упомянутое запускающее событие ассоциативно связано переменно и динамически образом программируемым событием, упомянутое переменно и динамическим образом программируемое событие определено так, чтобы оптимизировать производительность многопоточного процессора; и
логику контроля для отслеживания событий, возникающих во время обработки каждого из множества потоков, для определения наличия упомянутого переменно и динамическим образом программируемого события, в силу этого устанавливающую наличие упомянутого запускающего события.
20. Процессор по п.17, дополнительно содержащий логику контроля событий для определения по меньшей мере одного запускающего события, являющегося промахом кэша, возникающим во время обработки множества потоков.
21. Процессор по п.17, дополнительно содержащий логику контроля событий для определения по меньшей мере одного запускающего события, являющегося отсутствием нужных команд, возникающим во время обработки множества потоков.
22. Процессор по п.17, дополнительно содержащий логику контроля событий для определения по меньшей мере одного запускающего события, являющегося сигналом для выполнения обработки переключения по сигналу для переключения с упомянутого первого потока на упомянутый второй поток.
23. Процессор по п.17, дополнительно содержащий логику контроля событий для определения, что команда попыталась использовать отсутствующее значение из загрузки в качестве упомянутого по меньшей мере одного запускающего события для выполнения обработки переключения по использованию для переключения с упомянутого первого потока на упомянутый второй поток.
24. Процессор по п.17, в котором упомянутая логика переключения потоков дополнительно содержит:
логику оптимизации для определения заранее второго запускающего события, чтобы многопоточный процессор переключался с первого потока на второй поток, причем упомянутое второе запускающее событие определяется переменно и динамическим образом, чтобы оптимизировать производительность многопоточного процессора; и
логику управления событиями переключения для избирательного и динамического управления тем, управляет ли возникновение упомянутого по меньшей мере одного запускающего события или возникновение упомянутого второго запускающего события переключением многопоточного процессора в обработке из первого потока на обработку из второго потока.
25. Используемый компьютером носитель, содержащий машиночитаемую программу, воплощенную на нем, для обработки команд в многопоточном процессоре, причем многопоточный процессор предназначен для обработки множества потоков, работающих посредством множества процессорных конвейеров, ассоциативно связанных с многопоточным процессором, способ содержит этапы:
машиночитаемую программу для определения заранее по меньшей мере одного запускающего события, чтобы многопоточный процессор переключался с первого потока на второй поток, при этом упомянутое запускающее событие определяется переменно и динамическим образом, чтобы оптимизировать производительность многопоточного процессора;
машиночитаемую программу для обработки первого набора команд из первого потока до возникновения упомянутого запускающего события;
машиночитаемую программу для переключения многопоточного процессора в обработке из первого потока на обработку из второго потока по возникновению упомянутого запускающего события;
машиночитаемую программу для обработки второго набора команд из второго потока до возникновения упомянутого запускающего события;
машиночитаемую программу для переключения многопоточного процессора в обработке из второго потока на обработку из следующего потока по возникновению упомянутого запускающего события; и
машиночитаемую программу для продолжения этапов обработки и переключения во время работы многопоточного процессора.
26. Используемый компьютером носитель по п.25, дополнительно содержащий:
машиночитаемую программу для определения заранее по меньшей мере одного запускающего события, чтобы многопоточный процессор переключался с первого потока на второй поток, причем упомянутое запускающее событие ассоциативно связывается с количеством циклов процессора, упомянутое количество циклов процессора определяется так, чтобы оптимизировать производительность многопоточного процессора; и
машиночитаемую программу для подсчета упомянутого количества циклов процессора для определения, равно ли упомянутое подсчитанное количество циклов процессора упомянутому определенному заранее количеству циклов процессора, в силу этого устанавливающее наличие упомянутого запускающего события.
27. Используемый компьютером носитель по п.25, дополнительно содержащий:
машиночитаемую программу для определения заранее по меньшей мере одного запускающего события, чтобы многопоточный процессор переключался с первого потока на второй поток, причем упомянутое запускающее событие ассоциативно связывается с переменно и динамическим образом программируемым событием, упомянутое переменно и динамическим образом программируемое событие определено так, чтобы оптимизировать производительность многопоточного процессора; и
отслеживания событий, возникающих во время обработки каждого из множества потоков для определения наличия упомянутого переменно и динамическим образом программируемого события, в силу чего установления наличия упомянутого запускающего события.
28. Используемый компьютером носитель по п.25, дополнительно содержащий:
машиночитаемую программу для определения заранее второго запускающего события, чтобы многопоточный процессор переключался с первого потока на второй поток, причем упомянутое второе запускающее событие определяется переменно и динамическим образом, чтобы оптимизировать производительность многопоточного процессора; и
избирательного и динамического управления тем, управляет ли возникновение упомянутого по меньшей мере одного запускающего события или возникновение упомянутого второго запускающего события переключением многопоточного процессора в обработке из первого потока на обработку из второго потока.