Author: Robert Hyatt
Date: 09:53:39 11/03/02
Go up one level in this thread
On November 03, 2002 at 02:00:41, Anthony Cozzie wrote: >If I understand SMT correctly, its even more than that. A modern processor has >a lot of functional units lying around. An Athlon can in theory execute 3 >branches, 3 integer instructions, and 3 floating point instructions every cycle. > In reality, most of the time those units are just sitting around. One of the >ideas behind SMT is that you can run 2 threads, and split the functional units >between them. > >anthony Sure... but the main point is that anywhere a thread can't execute, the other thread gets a chance. Memory reads are simply one example. Executing a long instruction that takes many cycles to stuff something into eax will block when eax is used, until the value is ready. The other thread can fill in the gaps quite easily. There are lots of reason for a thread to "block" inside the CPU, but by far the most common reason is "waiting on a register to get loaded" whether that is from a read to memory or the result of a slow instruction... It is also just another way to get parallel instruction streams beyond what is done in super-scalar. The intel processors have so few registers (four basic general purpose registers) that keeping two functional units busy with a single thread of execution is not easy. Hyper-threading takes this up a level so that we run two instruction streams from two different processes, to try to keep all the pipes busy.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.