Thread fairness on a multi-threaded processor with multi-cycle cryptographic operations
First Claim
1. A microprocessor comprising:
- an instruction pipeline configured to concurrently process instructions corresponding to a plurality of threads, wherein the instruction pipeline comprises one or more hardware (HW) resource groups each configured to execute instructions; and
control circuitry;
wherein for a given HW resource group of the one or more HW resource groups, the control circuitry is configured to;
identify at least two active threads configured to utilize the given HW resource group and execute an instruction of a first type, the given HW resource group being configured to support only one of the at least two active threads at a given time;
set a thread mode for a first thread of the at least two active threads to a first mode which causes an issued instruction of the first type to execute with one or more added stalls within the given HW resource group, in response to a condition being met, said condition comprising determining the first thread is associated with an instruction of the first type and a second thread of the at least two active threads is not associated with an instruction of the first type; and
set the thread mode for the first thread to a second mode which causes the issued instruction of the first type to execute without said one or more added stalls within the given HW resource group, in response to said condition not being met.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for efficient execution of operations in a multi-threaded processor. Each thread may include a blocking instruction. A blocking instruction blocks other threads from utilizing hardware resources for an appreciable amount of time. One example of a blocking type instruction is a Montgomery multiplication cryptographic instruction. Each thread can operate in a thread-based mode that allows the insertion of stall cycles during the execution of blocking instructions, during which other threads may utilize the previously blocked hardware resources. At times when multiple threads are scheduled to execute blocking instructions, the thread-based mode may be changed to increase throughput for these multiple threads. For example, the mode may be changed to disallow the insertion of stall cycles. Therefore, the time for sequential operation of the blocking instructions corresponding to the multiple threads may be reduced.
25 Citations
20 Claims
-
1. A microprocessor comprising:
-
an instruction pipeline configured to concurrently process instructions corresponding to a plurality of threads, wherein the instruction pipeline comprises one or more hardware (HW) resource groups each configured to execute instructions; and control circuitry; wherein for a given HW resource group of the one or more HW resource groups, the control circuitry is configured to; identify at least two active threads configured to utilize the given HW resource group and execute an instruction of a first type, the given HW resource group being configured to support only one of the at least two active threads at a given time; set a thread mode for a first thread of the at least two active threads to a first mode which causes an issued instruction of the first type to execute with one or more added stalls within the given HW resource group, in response to a condition being met, said condition comprising determining the first thread is associated with an instruction of the first type and a second thread of the at least two active threads is not associated with an instruction of the first type; and set the thread mode for the first thread to a second mode which causes the issued instruction of the first type to execute without said one or more added stalls within the given HW resource group, in response to said condition not being met. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for use in a processor, the method comprising:
-
concurrently processing instructions corresponding to a plurality of threads, wherein processing utilizes one or more hardware (HW) resource groups each configured to execute instructions; wherein for a given HW resource group of the one or more HW resource groups; identifying at least two active threads configured to utilize the given HW resource group and execute an instruction of a first type, the given HW resource group being configured to support only one of the at least two threads at a given time; setting a thread mode for a first thread of the at least two active threads to a first mode which causes an issued instruction of the first type to execute with one or more added stalls, in response to determining the first thread is associated with an instruction of the first type and a second thread of the at least two active threads is not associated with an instruction of the first type; and setting the thread mode for the first thread to a second mode which causes the issued instruction of the first type to execute without said one or more added stalls within the given HW resource group, in response to said condition is not met. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable to:
-
concurrently process instructions corresponding to a plurality of threads, wherein processing utilizes one or more hardware (HW) resource groups each configured to execute instructions; wherein for a given HW resource group of the one or more HW resource groups; identify at least two active threads configured to utilize the given HW resource group and execute an instruction of a first type, the given HW resource group being configured to support only one of the at least two threads at a given time; set a thread mode for a first thread of the at least two active threads to a first mode which causes an issued instruction of the first type to execute with one or more added stalls, in response to determining the first thread is associated with an instruction of the first type and a second thread of the at least active two threads is not associated with an instruction of the first type; and set the thread mode for the first thread to a second mode which causes the issued instruction of the first type to execute without said one or more added stalls within the given HW resource group, in response to said condition is not met. - View Dependent Claims (18, 19, 20)
-
Specification