Pipeline 구조 - 산술/명령어 파이프라인 구조
* 현실적 병렬적 다중 기능 장치
* 산술 파이프라인
* 명령어 파이프라인
현실적 파이프라인 구조
* 파이프라인 구조 VS 병렬적인 다중 기능 장치
- 실제 파이프라인 구조가 이론적인 최대 속도를 구현하지 못하는 이유
> 각 세그먼트들이 부연산을 수행하는 시간이 서로 다르다
> 또한 각 레지스터를 제어하는 클럭 사이클은 최대 전파시간을 갖는 세그먼트의 지연시간과 싱크를 맞추어야 한다
- 다음 그림과 같이 병렬적인 다중 기능 장치 (=파이프라인 처리 속도)를 고려할 수 있다
> 각 P 회로는 전체 파이프라인 회로에서와 동일하게 태스크를 수행한다
> 그러나 이 구조는 순차적으로 처리가 아니라 모든 회로가 동시에 데이터를 입력 받아 네 태스크를 한꺼번에 수행한다 - SIMD구조 일 뿐
- 파이프라인 구조 > 순차적 처리 구조
산술 파이프 라인
* 파이프라인 구조가 적용되는 컴퓨터 설계
- 산술(arithmetic) 파이프 라인 : 산술 연산들을 부연산으로 나누어 파이프라인의 세그먼트에서 수행
> 고속 컴퓨터에서 부동 소수점 연산, 고정 소수점 수의 곱셈, 과학계산용으로 활용
> 파이프라인 승산기 (배열 승산기 - 부분 곱 사이의 캐리(carry) 전파시간의 최소화를 위한 가산기 보유)
- 명령어(instruction) 파이프 라인 : 명령어 사이클의 fetch, 디코드, 실행 단계를 중첩 시킴으로 명령어 흐름에 동작
- 부동 소수점 덧셈과 뺄셈을 위한 파이프 라인
> 입력 : 두 개의 정규화(normalized)된 부동 소수점 이진수
> 각 세그먼트에서 수행되는 부 연산
1. 지수의 비교
2. 가수의 정렬
3. 가수의 덧셈이나 뺄셈
4. 결과의 정규화
- 부동 소수점 파이프라인의 구성 요소
> 비교기, 시프터, 가산.감산기, 인크리멘터, 디크리멘터 -> 조합회로
명령어 파이프 라인
* 명령어 실행과 파이프 라인 구조
- 명령어 파이프라인은 이전 명령어가 다른 세그먼트에서 실행되고 있는 동안 메모리에 연속적으로 저장되어 있는 명령어를 읽어 옴으로서 fetch와 실행이 중첩되어 동시에 수행되는 구조이다
- 분기가 발생할 경우 (가장 큰 취약점) - 현재의 파이프라인은 모두 비워져야 하고, 분기명령 이후에 메모리에서 읽어온 명령어는 모두 무시 되어야 한다
* 보다 효율적 명령어 실행을 위한 파이프 라인 구조
- 명령어 fetch 장치와 명령어 실행 장치로서 두 세그먼트 파이프라인을 구성하는 컴퓨터를 고려
> 명령어 fetch 장치 -> FIFO(First In First Out)에 의한 Que로 구성되어 queuing기법에 의한 메모리 참조에 의해 평균 메모리 접근 시간을 효과적으로 줄여준다
- 명령어 파이프라인이 수행되는데 있어 발생하는 애로 사항
> 세그먼트의 수행 시간이 서로 다름 (실행되지 않는 세그먼트도 있을 수 있음)
> 두 개 이상의 세그먼트에 의해 동일한 주소 공간이 참조되는 경우
* 네 세그먼트 명령어 파이프 라인의 예 - 명령어 파이프라인의 시간 관계
출처 : 제로베이스
'공부 Note > 컴퓨터 구조' 카테고리의 다른 글
Chapter 05 메모리 구조 (1) (0) | 2022.02.24 |
---|---|
Chapter 04 파이프라인과 벡터처리(4) (0) | 2022.02.24 |
Chapter 04 파이프라인과 벡터처리(2) (0) | 2022.02.24 |
Chapter 04 파이프라인과 벡터처리(1) (0) | 2022.02.24 |
Chapter 03 중앙처리장치 (7) (0) | 2022.02.24 |