One of the major problems encountered in this design work was in the resource allocation to threads, which, as in loop unrolling, requires multiple instances of loop bodies as they are unrolled. This is clearly not a scalable solution and requires code to be recompiled for different configurations of processors. The solution that will be presented uses a three-state micro-thread model, where a thread is either unallocated, running, or suspended and in which all local register resources within a thread are allocated dynamically on the transition from unallocated to running. The result is a scheme in which an n-way loop can be unrolled into a n instances of a single body of code which is the thread descriptor. The overhead of generating these n instances will be just one machine cycle and the thread body will contain no conditional branch. In effect a loop is unrolled into one thread from each iteration, with synchronisation and communication being via the shared registers. The handling of dependencies between threads is a major issue in this design and solutions are given in principle, although exact details must be determined by simulation on the number of dependencies allowed per thread.