RESOURCE MANAGEMENT FOR THE TAGGED TOKEN DATAFLOW ARCHITECTURE

The Tagged Token Dataflow Architecture is a multiprocessor based on the U-interpreter model of dataflow computation. It captures the essential execution mechanism of the U-interpreter precisely; operations are enabled for execution by the availability of operand data. However, computational resources in the model and the machine are viewed quite differently. This thesis addresses four major resources management issues essential to bridge the gap between the U-interpreter and the Tagged Token Dataflow Architecture. Termination detection: The completion of code-block invocations must be detected so resources can be released and reused. This problem is solved by augmenting graphs with auxiliary arcs so that the execution of a particular operation signifies completion. Token store overflow: Deadlock due to token store overflow is overcome by determining the worst-cast token storage requirements of code-blocks in advance and reserving that amount of token storage. Token storage requirements are determined by modeling the space of legal graph configurations as a system of integer linear constraints and maximizing the token storage requirement subject to these constraints. The resulting integer linear program is of a form that can be solved efficiently. Iteration identifier overflow: The labels carried on tokens are represented by fixed size tags; iteration identifiers must be reused to allow loops to execute a large number of iterations. This requires controlling the unfolding (i.e., the number of concurrent iterations) of loops. It is shown that loops exhibit bounded unfolding if and only if the graph forms a single strongly connected component. A transformation is proposed which allows controlled unfolding of loops and automatic reuse of iteration identifiers. Program deadlock: Each code-black invocation requires certain resources. Thus, the resource capacity of the machine limits the number of concurrent invocations. Programs unfold as a tree of invocations. If too much parallelism is exposed (i.e., if the invocation tree is allowed to grow too broad) the machine resources will become prematurely exhausted and cause the program to deadlock. A resource management strategy is developed which constrains program unfolding so that just enough parallelism is exposed to fully utilize the machine.