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.

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.