Intel Patents Thread Scheduling
Intel has been awarded a patent that provides basic information about the company's thread scheduling approach in multi-processor computers. Filed on March 26, 2007 the USPTO confirmed the rights to it earlier this week.
The patent include the idea to leverage stored instructions in a computer system to "assign two threads to processors based on bandwidth utilization of the two threads in combination; determine whether the bandwidth utilization of the two combined threads exceeds a threshold value; use a cache simulator to construct a coupling degree matrix; use a software library to develop said coupling degree matrix; and use the coupling degree matrix to allocate threads to processors when the bandwidth utilization does not exceed said threshold."
Also claimed are instructions that provide information on whether the bandwidth utilization exceeds a threshold of 15 percent, as well as a capability to store "the coupling degree matrix by rating two threads in terms of the total amount of accesses to cache lines shared between two threads," as well as a "scheduler to determine the coupling degree matrix by rating the threads in terms of the total amount of accesses to cache lines."
In the scheduling process, idle threads and idle process pairs are first identified and a loop to check for more pairs is launched, after which threads to idle processors are assigned. This process repeats until all process pairs have been covered. As soon as no more pairs are available, the loop may identify an individual thread that is assigned to a process.
The patented scheduler uses information about the location of data between threads and bandwidth demand to evaluate thread allocation for performance purposes. According to the patent, bandwidth utilization is considered the highest priority in determining the thread schedule, followed by data location. The document concludes that, if a bandwidth threshold of co-scheduled threads on one cluster exceeds a certain level, "for example 15 percent", the system would schedule the threads on different clusters. If the utilization is below the defined level, the system assumes that closely coupled threads on one cluster would achieve higher performance.

Because cores don't scale perfectly? Plus you also have to factor in the software you're using, cache, architecture, pipelining, 32- or 64-bit etc.
It certainly does, at least as an improvement to it. A major disadvantage of Hyper-threading in the P4 was that two threads running on the same processor could interfere with each others cache lines. It is possible that the reason behind the reintroduction of Hyper-threading in the Nehalem architecture was that Intel was able to implement this technology, or something similar, and as a result was able to achieve a larger performance gain from Hyper-threading.
As do most things when it's in regards to patents. You practically need a doctorate to read 'em and a lawyer to write them.
Does it worth it ?
Then we wonder why a quad core is not 4 times powerfull than a smame clock single core.
Because cores don't scale perfectly? Plus you also have to factor in the software you're using, cache, architecture, pipelining, 32- or 64-bit etc.
Yyyeaaaahhhhh~.
Under current US patent law, priority is awarded to the 'first to invent' something. So in order for AMD to prevail under your scenario above, they would have to demonstrate that they conceived and reduced to practice the claimed invention before Intel did. To show prior conception, they would have to have lab notes and other written evidence predating Intel's, showing that they thought of the idea before Intel did.
Usually the first to file a patent application on the idea is taken as constructive reduction to practice. However if AMD could show they were diligently (i.e., no long breaks) working on the invention, they could supercede Intel in what is called an interference proceeding and be awarded priority.
However under the American Inventor's Act, which goes into full effect this year IIRC, US patent law is being harmonized with European and Japanese patent law, which awards priority to the first to file a patent application. So that means if you file an application first, you are automatically awarded priority no matter how much work the competition can show they did before you filed, or did for that matter.
However I also think that AMD & Intel have a cross-licensing agreement in effect which may mean that AMD gets to use Intel's patents in exchange for the X64 patent that belongs to AMD. Not sure of the particulars of that agreement, so I dunno if it covers new stuff like this. But, if true, then this patent would deter somebody like ARM if they wanna get into hyperthreading and use the same or not-patentably-distinct (obvious) variation on Intel's patented technology, whereas AMD would not have to worry about it.
Actually an algorithm is exactly the kind of thing that SHOULD be patented. It takes a lot of critical thinking and design to come up with a solid algorithm. It is not a given like a law of physics, it is absolutely intellectual property.
In my opinion, this is exactly the kind of thing that SHOULD be patented. Not UI design bullshit, but actual technology. What is more, you can probably bet that Intel will not use this as a sword against competition, it is not how they role.
As a former game coder I disagree.
A good algorithm is simply providing the most effective or logical solution for a given situation.
As such it is not a "law of physics" but a "law of logic" than one patents.
This should not be confused with the algorithm for say the AI of a game. That's not necessarily dictated by outright logic of course.
It always begin like this...
You are looking at one cycle in billions. Literally. if it checks only a few times a second a core nearing it's threshold and splitting threads onto other cores, the extra power savings (intelligently disabling other cores) and performance gains (never having to worry about wasting user time) is is a superfluous concern.
Not only that but they can run these checks using some part of uncore, and not have any hit at all and enabling a much faster update frequency.