IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0054491
(2008-03-25)
|
등록번호 |
US-8683483
(2014-03-25)
|
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
Meyertons Hood Kivlin Kowert & Goetzel, P.C.
|
인용정보 |
피인용 횟수 :
0 인용 특허 :
14 |
초록
▼
Load-balancing threads among a plurality of processing units. The method may include a first processing unit executing a plurality of software threads using a respective plurality of hardware strands. The plurality of hardware strands may share at least one hardware resource within the first process
Load-balancing threads among a plurality of processing units. The method may include a first processing unit executing a plurality of software threads using a respective plurality of hardware strands. The plurality of hardware strands may share at least one hardware resource within the first processing unit. The method may further include monitoring the at least one hardware resource, wherein, for each respective hardware strand. Monitoring may include, for each respective hardware resource of the at least one hardware resource: maintaining information regarding the respective hardware strand requesting to use the respective hardware resource but failing to do so because the respective hardware resource is in use, comparing the information to a threshold, and generating an interrupt if the information exceeds the threshold. One or more load-balancing operations may be performed in response to the interrupt.
대표청구항
▼
1. A method for load-balancing threads among a plurality of processor cores, comprising: a first processor core executing a plurality of software threads using a respective plurality of hardware strands, wherein the plurality of hardware strands share at least one hardware resource, wherein each of
1. A method for load-balancing threads among a plurality of processor cores, comprising: a first processor core executing a plurality of software threads using a respective plurality of hardware strands, wherein the plurality of hardware strands share at least one hardware resource, wherein each of the at least one hardware resource is a component within the first processor core;monitoring the at least one hardware resource, wherein, for each respective hardware strand, said monitoring comprises: for each respective hardware resource of the at least one hardware resource: maintaining information for a first number of clock cycles, wherein the first number of clock cycles is a length of time for monitoring the respective hardware resource, wherein said maintaining information comprises: storing the first number in a register;decrementing the first number on each clock cycle until the first number equals zero;during said decrementing: incrementing a second number if the respective hardware resource was in use when the respective hardware strand requested use of the respective hardware, wherein the second number is a number of times that the respective hardware resource was in use when the respective hardware strand requested use of the respective hardware resource;comparing the second number to a threshold; andgenerating an interrupt if the second number exceeds the threshold; andperforming one or more load-balancing operations in response to the interrupt, wherein said performing the one or more load-balancing operations comprises moving a software thread associated with the respective strand to a different one of the plurality of processor cores. 2. The method of claim 1, wherein the at least one hardware resource comprises one or more of: one or more memory elements;one or more integer units;one or more floating point units; orone or more program execution units. 3. The method of claim 1, wherein the second number comprises a number of clock cycles during which the respective hardware thread desires to use the respective hardware resource but cannot because the respective hardware resource is in use. 4. The method of claim 1, wherein said maintaining is performed for a first period of time and wherein the method further comprises modifying the first period of time. 5. The method of claim 1, further comprising: modifying the threshold. 6. The method of claim 1, wherein said performing is performed by an operating system utilizing the plurality of processor cores. 7. The method of claim 1, wherein the interrupt indicates that the respective hardware resource is saturated. 8. A computer system which load-balances threads, the system comprising: a plurality of processor cores, wherein a first processor core of the plurality of processor cores comprises: at least one hardware resource;a plurality of hardware strands, wherein the plurality of hardware strands share the at least one hardware resource within the first processor core;wherein the plurality of hardware strands are configured to execute a plurality of software threads;a first circuitry for monitoring the at least one hardware resource, wherein the first circuitry is configured to, for a first number of clock cycles, monitor a respective hardware strand requesting to use the respective hardware resource but failing to do so because the respective hardware resource is in use, wherein the first number of clock cycles is a length of time for monitoring the respective hardware resource;a memory element coupled to the first circuitry for maintaining information regarding said monitoring, wherein said maintaining information comprises: storing the first number in a register of the memory element;decrementing the first number on each clock cycle until the first number equals zero;during said decrementing: incrementing a second number if the respective hardware resource was in use when the respective hardware strand requested use of the respective hardware resource, wherein the second number is a number of times that the respective hardware resource was in use when the respective hardware strand requested use of the respective hardware resource;comparing the second number to a threshold, thereby determining if the at least one hardware resource is saturated; andwherein the first circuitry is configured to generate an interrupt if the information regarding said monitoring indicates saturation of the at least one hardware resource; andwherein one or more load balancing operations are performed in response to the interrupt, wherein said performing the one or more load-balancing operations comprises moving a software thread associated with the respective strand to a different one of the plurality of processor cores. 9. A method for load-balancing threads among a plurality of processor cores, comprising: a first processor core executing a plurality of software threads using a respective plurality of hardware strands, wherein the plurality of hardware strands share at least one hardware resource within the first processor core;monitoring the at least one hardware resource, wherein, for each respective hardware strand, said monitoring comprises: maintaining information for a first number of clock cycles, wherein the first number of clock cycles is a length of time for monitoring the respective hardware resource, wherein said maintaining information comprises: storing the first number in a register;decrementing the first number on each clock cycle until the first number equals zero;during said decrementing: incrementing a second number if the respective hardware resource was in use when the respective hardware strand requested use of the respective hardware;comparing the second number to a threshold, thereby determining if the at least one hardware resource is saturated, wherein the second number is a number of times that the respective hardware resource was in use when the respective hardware strand requested use of the respective hardware resource; andgenerating an interrupt if the information indicates saturation of the at least one hardware resource; andperforming one or more load-balancing operations in response to the interrupt, wherein said performing the one or more load-balancing operations comprises moving a software thread associated with the respective strand to a different one of the plurality of processor cores.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.