Scalar Pipeline, Superscalar Pipeline
포스트 난이도: HOO_Middle
# Pipeline
CPU에서 명령 처리를 하는 과정에 파이프라인(Pipeline)을 사용한다.
병렬 처리 방식과 연속성 방식을 토대로 효율성을 최대로 높여 명령 수행이 이루어진다.
이전 포스트에서 다뤘던 파이프라인에 이어서 이번 포스트에서는 Scalar pipeline과 Superscalar pipeline에 대해서 알아보도록 하자.
# Scalar Pipeline
스칼라 파이프라인은 Multiply the funictional units이라고 불리며 같은 sub task을 different operations run이 가능하다.
한마디로 스칼라 파이프라인은 평행한 구조를 가지고 있지만 기존의 units을 여러 개 두어 작업 속도를 높여준다.
따라서 한번에 하나의 명령어를 수행하거나 그룹으로 묶인 작업들을 수행하는 방식이 스칼라 파이프라인에 해당한다.
# Superscalar Pipeline
슈퍼스칼라 파이프라인 방식은 스칼라 파이프라인 방식과 다소 다르다.
스칼라 파이프라인처럼 평행으로 이루어져서 하나의 한가지 작업이 이루어지는 방식이 아니라 여러 작업 수행이 동시에 가능하다.
한마디로 병렬 구조처럼 생겨서 명령어 처리가 동시에 같이 시작해서 작업 수행이 가능하다는 것이다.
슈퍼스칼라 파이프라인의 이러한 특징 덕분에 하나의 코어만 존재해도 Instruction 작업이 동시에 2개 이상이 가능하다.
Our of order인 경우에도 작업 수행이 가능한 이유도 슈퍼스칼라 파이프라인 방식을 가지고 있기 때문이다.
다만 슈퍼스칼라 파이프라인은 동시에 여러 Instruction 작업을 수행하다 보니, Data hazard와 같은 문제가 발생할 가능성이 높다는 단점을 가지고 있다.
댓글