z[1]과 z[2], z[3]와 z[4]가 동시에 계산되면 성능이 2배로 좋아진다.
Static multiple issue : 정해진 순서(Compile time)에 의해 실행된다.
Dynamic multiple issue : 런타임에 의해 실행된다. -> Superscalar
라고도 불린다.
multiple issue를 이용하기 위해서, 동시에 실행되어야 하는 명령체계를 찾아야 한다. 또한 실행결과에 대한 예측계산을 하게 되는데, 만약 실제 결과가 달라진다면 다시 돌아가서 계산하게 된다(Specultaion).
Thread-level parallelism(TLP) 동시에 여러개의 다른 스레드들이 실행될 수 있도록 만든 하드웨어
지연되는 스레드를 스킵하면서 명령을 처리중인 스레드들을 스위칭한다.
매번 스위칭 및 지연시간 체크를 하는 Fine-grained와 다르게, 일정시간동안 지연되어있다면 스위칭을 한다. -> 필요할 때만 스위칭 하자!
멀티스레딩 환경에서 fine-grained를 할 수 있는 환경(우리가 사용하고 있는 환경이다)
-> Superscalar 프로세서에서 멀티스레드가 가능하다.