Horizontal architectures can control several functional units independently, and usually have a single flow of control. As such, they exploit only the finer parallelism, and a large number of functional units is useless when the code contains control or data dependencies. The performance in these cases can be increased, with the same total hardware, if the functional units are divided in groups...