Next, in Section 4.2 we give an overview of possible dependencies between instructions of a program. As dependencies are common to all ILP-classes, we discuss them jointly. Dependencies impose constraints on the parallel execution of instructions. In Section 4.3 we overview how dependencies can be detected and resolved by instruction scheduling and at the same time how ILP-execution can be optimized. Pipelining boosts performance by executing instructions like an assembly line.
Replication means using multiple EUs operating in parallel.
Evidently, pipelining is the principle behind pipelined processors, while replication is the foundation for VLIWs and superscalar processors. We emphasize that pipelining and replication are two orthogonal concepts. Thus both approaches can be applied at the same time to achieve a cumulative effect. In practice, this means that an additional performance increase can be achieved using multiple pipelined EUs. This arrangement is typical for both VLIWs and superscalar processors.