  Spatial architecture is a high-performance architecture that uses control
flow graphs and data flow graphs as the computational model and
producer/consumer models as the execution models. However, existing spatial
architectures suffer from control flow handling challenges. Upon categorizing
their PE execution models, we find that they lack autonomous, peer-to-peer, and
temporally loosely-coupled control flow handling capability. This leads to
limited performance in intensive control programs.
  A spatial architecture, Marionette, is proposed, with an explicit-designed
control flow plane. The Control Flow Plane enables autonomous, peer-to-peer and
temporally loosely-coupled control flow handling. The Proactive PE
Configuration ensures timely and computation-overlapped configuration to
improve handling Branch Divergence. The Agile PE Assignment enhance the
pipeline performance of Imperfect Loops. We develop full stack of Marionette
(ISA, compiler, simulator, RTL) and demonstrate that in a variety of
challenging intensive control programs, compared to state-of-the-art spatial
architectures, Marionette outperforms Softbrain, TIA, REVEL, and RipTide by
geomean 2.88x, 3.38x, 1.55x, and 2.66x.
