Multiple cores allows for multiple instruction streams, while multiple execution units within a core allows for superscalar execution.
Multiple cores allows for multiple instruction streams, while multiple execution units within a core allows for superscalar execution.