컴퓨터구조 #17 파이프라인 구조 - 산술/명령어

underlier12·2020년 4월 24일
0

컴퓨터구조

목록 보기
17/26

17. 파이프라인 구조 - 산술/명령어

현실적 파이프라인 구조

실제 파이프라인 구조가 이론적인 최대 속도를 구현하지 못하는 이유는

  • 각 세그먼트들이 부 연산을 수행하는 시간이 다름
  • 각 레지스터를 제어하는 클럭 사이클은 최대 전파시간을 갖는 세그먼트의 지연시간과 싱크 맞출 필요성 있음

산술 파이프라인

산술 파이프라인은 산술 연산을 부 연산들로 나누어 파이프라인의 세그먼트에서 수행한다.

  • 부동 소수점 연산, 고정 소수점 수의 곱셈 등에 활용
  • 승산기(곱셈, 캐리 전파시간 최소화)

cf) 명령 파이프라인은 명령어 사이클의 fetch, de code, 실행 단계를 중첩함으로 명령어 흐름에 동작한다.

부동 소수점 덧셈과 뺄셈을 위한 파이프라인

  • 입력은 두 개의 정규화된 부동 소수점 이진수

각 세그먼트에서 수행되는 부 연산

  1. 지수의 비교
  2. 가수의 정렬
  3. 가수의 덧셈/뺄셈
  4. 결과의 정규화

산술 파이프라인의 효율성

당연하게도 파이프라인을 활용하는 것이 비 파이프라인 구조에 비해 훨씬 효과적이다.

총 소요시간 기준으로 320/110 = 2.9 배의 효과를 볼 수 있다

명령 파이프라인

이전 명령어가 다른 세그먼트에서 실행되고 있는 동안 메모리에 연속적으로 저장되어 있는 다음 명령어를 읽어 옴으로 fetch와 실행이 중첩되어 동시에 수행되는 구조이다.

분기가 발생 할 경우(가장 큰 취약점) 현재 파이프라인은 모두 비워져야 하고 분기 명령 이후 메모리에서 있어온 명령어는 모두 무시되어야 한다.

효율적 명령어 실행

명령어 fetch 장치와 명령어 실행장치로 두 세그먼트 파이프라인을 구성한다.

  • 명령어 fetch 장치 -> FIFO에 의한 Queue로 구성되어 메모리 참조에 의해 평균 메모리 접근 시간을 효과적으로 줄여 준다.

명령어 파이프라인 수행 시 애로 사항

  • 세그먼트 수행 시간이 서로 다음
  • 두 개 이상의 세그먼트에 의해 동일한 주소 공간이 참조되는 경우

4 세그먼트 명령 파이프라인 예시

profile
logos and alogos

0개의 댓글