본문 바로가기

CS/컴퓨터구조

파이프라인

파이프라인 제어방식

- 하나의 프로세서를 서로 다른 기능을 가진 여러 개의 서브프로세서로 나누어, 각 서브프로세서가 동시에 서로 다른 데이터를 취급하도록 하는 기법으로 이때 기능별로 나누어진 서브프로세서를 세그먼트 또는 단계라고 한다.

- 프로그램에 내재하는 시간적 병렬성을 활용하기 위하여 프로그램 수행에 필요한 작업을 시간적으로 중첩하여 수행시키는 처리기이다.

- 각 세그먼트들의 부연산 수행속도가 다르지만 클록 사이클은 최대로 긴 세그먼트의 연산 속도에 맞추어져 있으므로 시간의 낭비가 있을 수 있다.

 

파이프라인 해저드

- 각 클럭 사이클 동안에 정상적으로 명령어들이 중첩하여 수행되지 못하는 문제

구조적 해저드

- 파이프라인 각 단계별로 각 자원들을 독립적으로 사용할 수 없어 발생한다.

- 하드웨어를 추가함으로써 구조적인 해저드를 피할 수 있다.

데이터 해저드

- 이웃하는 명령어들 사이에 데이터 의존성을 갖기 때문에 발생한다.

- Stall(지연) 이나 forwarding 기술을 통해 해결할 수 있고 또는 컴파일러에서 프로그램 내의 명령어 의존성을 분석해 재배치함으로써 데이터 해저드를 제거할 수 있다.

제어 해저드(control hazard) / 분기 해저드(branch hazard)

- 분기를 발생시키는 명령어를 수행 시에 발생한다.

- Stall(지연) 기술을 사용하거나 분기를 예측함으로써 제어 해저드를 해결할 수 있으나 명확한 해결책은 없다.

첨단 프로세서

슈퍼스칼라 프로세서

- 프로세서가 한 사이클 동안에 하나 이상의 명령어를 실행시킬 수 있는 프로세서 아키텍쳐

- 파이프라인과 병렬처리의 장점을 모은 것으로 여러 개의 파이프라인에서 명령들이 병렬로 처리된다.

- 두 명령어들 사이에 데이터 의존성이 존재하지 않아야 그들을 동시에 실행 가능하다.

- 한 클록에 n개의 명령어를 처리할 수 있는 능력이 있는 경우 n-way 또는 degree n superscalar processor라 한다.

슈퍼파이프라인 프로세서

- 파이프라인 각 단계를 두 개 혹은 그 이상으로 분할한 것으로 기존의 파이프라인 방식보다 더욱 고속으로 처리할 수 있다.

- 동작 주파수를 올리면 연산 성능이 향상된다.

- 하드웨어적으로는 슈퍼스칼라 컴퓨터보다 비교적 단순하다.

슈퍼파이프라인 슈퍼스칼라 프로세서

- 슈퍼파이프라인과 슈퍼스칼라방식을 결합한 방식으로 최근 대부분의 고성능 프로세서들에서 사용되고 있다.

VLIW(Very Long Instruction Word) 프로세서

- 한 개의 명령어 형식 내에 동시에 실행될 수 있는 연산들을 여러 개 포함시킴으로써, 각각의 명령어를 인출하여 실행할 때마다 여러 연산들이 동시에 실행되도록 하는 방식이다.

- 여러 개의 기능 유닛들을 가지고 있으며, 컴파일러가 동시에 실행될 수 있는 연산을 가진 명령어들을 찾아서 하나의 명령어 코드 내에 재배열한다.

- 슈퍼스칼라와 다른 점은 인출과 해독은 한 회로에 의해 수행되고, 실행 사이클만 여러 개의 기능 유닛들로 나누어져 동시에 처리한다.

VLIW와 슈퍼스칼라 비교
- VLIW와 달리 슈퍼스칼라는 명령어 집합의 구조를 바꿀 필요가 없기 때문에 호환성이 VLIW에 비해 높은 장점이 있다.

 

- VLIW는 컴파일러 수준에서 명령어를 스케줄링하기 때문에 하드웨어 수준에서 명령어를 스케줄링 하는 슈퍼스칼라에 비해 구조가 간단하게 나타난다는 상대적 장점이 있다.

 

'CS > 컴퓨터구조' 카테고리의 다른 글

CISC와 RISC  (0) 2021.02.19
주변장치 연결 방식(버스)  (0) 2021.02.19
캐시메모리  (0) 2021.02.18