For what type of program-level parallelism (data or control) is SIMD best suited? For what type of program-level parallelism is MIMD best suited? Describe briefly and compare the VLIW and superscalar models with respect to instruction-level parallelism. Which model, VLIW or superscalar, presents the greater challenge for compilers? Why?