A Macrotask-level Unlimited Speculative Execution on Multiprocessors (14/19)

The following description is based on the paper presented at 1995 ACM International Conference on Supercomputing head in Spain on July 3rd to 7th,1995.

If you want to have the copy of the paper, please let me know.


back index next


Let's turn our attention now to the distributed control. As shown in this figure, a macrotask is initiated in two ways. - blue and yellow part. Firstly, look at the blue part. The newly created MT has data dependence only from one preceding MT. So, the preceding macrotask is able to initiate the new MT after the definition of data. On the other hand, in the yellow part, the newly created MT has data dependences from two preceding MTs. So, we must confirm the completion of both data definitions before the initiation of new MT. To confirm the completions, data matching feature is used. The preceding two MTs send a signal to the data matching feature. Then, the feature creates the new MT. Then, how do the speculating MT determine wether the speculation is success or not. They determine by themselves. The control signals, consisting of the branch direction or the completion of MT, are broadcasted by using broadcast feature. Every MT checks the next state "to discard, or to continue the execution". In this way, the macrotask control is distributed among the MTs.