
Multithreaded Processor Design
von Simon W. MooreMultithreaded Processor Design takes the unique approach  of designing a multithreaded processor from the ground up. Every  aspect is carefully considered to form a balanced design rather than  making incremental changes to an existing design and then ignoring  problem areas. 
 The general purpose parallel computer is an  elusive goal. Multithreaded processors have emerged as a promising  solution to this conundrum by forming some amalgam of the commonplace  control-flow (von Neumann) processor model with the more exotic  data-flow approach. This new processor model offers many exciting  possibilities and there is much research to be performed to make this  technology widespread. 
  Multithreaded processors utilize the simple and efficient sequential  execution technique of control-flow, and also data-flow like  concurrency primitives. This supports the conceptually simple but  powerful idea of rescheduling rather than blocking when waiting for  data, e. g. from large and distributed memories, thereby tolerating  long data transmission latencies. This makes multiprocessing far more  efficient because the cost of moving data between distributed memories  and processors can be hidden by other activity. The same hardware  mechanisms may also be used to synchronize interprocess communications  to awaiting threads, thereby alleviating operating system overheads.  
  Supporting synchronization and scheduling mechanisms in hardware  naturally adds complexity. Consequently, existing multithreaded  processor designs have tended to make incremental changes to existing  control-flow processor designs to resolve some problems but not  others. 
  Multithreaded Processor Design serves as an excellent reference  source and is suitable as a text for advanced courses in computer  architecture dealing with the subject.



