Just do IT
article thumbnail

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

   * 현실적 병렬적 다중 기능 장치

   * 산술 파이프라인

   * 명령어 파이프라인

 

현실적 파이프라인 구조

   * 파이프라인 구조 VS 병렬적인 다중 기능 장치

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

         > 세그먼트들이 부연산을 수행하는 시간이 서로 다르다

         > 또한 레지스터를 제어하는 클럭 사이클은 최대 전파시간을 갖는 세그먼트의 지연시간과 싱크를 맞추어야 한다

      - 다음 그림과 같이 병렬적인 다중 기능 장치 (=파이프라인 처리 속도) 고려할 있다

         > P 회로는 전체 파이프라인 회로에서와 동일하게 태스크를 수행한다

         > 그러나 구조는 순차적으로 처리가 아니라 모든 회로가 동시에 데이터를 입력 받아 태스크를 한꺼번에 수행한다 - SIMD구조

      - 파이프라인 구조 > 순차적 처리 구조

산술 파이프 라인

   * 파이프라인 구조가 적용되는 컴퓨터 설계

      - 산술(arithmetic) 파이프 라인 : 산술 연산들을 부연산으로 나누어 파이프라인의 세그먼트에서 수행

         > 고속 컴퓨터에서 부동 소수점 연산, 고정 소수점 수의 곱셈, 과학계산용으로 활용

         > 파이프라인 승산기 (배열 승산기 - 부분 사이의 캐리(carry) 전파시간의 최소화를 위한 가산기 보유)

      - 명령어(instruction) 파이프 라인 : 명령어 사이클의 fetch, 디코드, 실행 단계를 중첩 시킴으로 명령어 흐름에 동작

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

         > 입력 : 개의 정규화(normalized) 부동 소수점 이진수

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

            1. 지수의 비교

            2. 가수의 정렬

            3. 가수의 덧셈이나 뺄셈

            4. 결과의 정규화

      - 부동 소수점 파이프라인의 구성 요소

         > 비교기, 시프터, 가산.감산기, 인크리멘터, 디크리멘터 -> 조합회로

 

명령어 파이프 라인

   * 명령어 실행과 파이프 라인 구조

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

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

   * 보다 효율적 명령어 실행을 위한 파이프 라인 구조

      - 명령어 fetch 장치와 명령어 실행 장치로서 세그먼트 파이프라인을 구성하는 컴퓨터를 고려

         > 명령어 fetch 장치 -> FIFO(First In First Out) 의한 Que 구성되어 queuing기법에 의한 메모리 참조에 의해 평균 메모리 접근 시간을 효과적으로 줄여준다

      - 명령어 파이프라인이 수행되는데 있어 발생하는 애로 사항

         > 세그먼트의 수행 시간이 서로 다름 (실행되지 않는 세그먼트도 있을 있음)

         > 이상의 세그먼트에 의해 동일한 주소 공간이 참조되는 경우

   * 세그먼트 명령어 파이프 라인의 - 명령어 파이프라인의 시간 관계

 

출처 : 제로베이스

profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!