오퍼랜드 전송

Operand forwarding

오퍼랜드 포워딩(또는 데이터 포워딩)은 파이프라인[1][2]스톨로 인해 발생하는 성능 저하를 제한하기 위해 파이프라인 CPU를 최적화한 것입니다.현재 작업이 아직 완료되지 않은 이전 작업의 결과를 기다려야 하는 경우 데이터 위험이 발생하면 파이프라인 정체가 발생할 수 있습니다.

A B C #A=B+C 서브 D C A #D=C-A를 추가합니다.

이들 2개의 어셈블리 의사 코드 명령이 파이프라인 내에서 실행되면 두 번째 명령을 가져오고 디코딩한 후 파이프라인이 정지하여 추가 결과가 기록되고 읽힐 때까지 기다립니다.

오퍼랜드 포워딩 없음
1 2 3 4 5 6 7 8
ADD 가져오기 디코딩 ADD 오퍼랜드 ADD 읽기 ADD 실행 결과 쓰기
SUB 가져오기 디코드 SUB 멈추다 멈추다 피연산자 SUB SUB 실행 결과 쓰기
오퍼랜드 포워딩 포함
1 2 3 4 5 6 7
ADD 가져오기 디코딩 ADD 오퍼랜드 ADD 읽기 ADD 실행 결과 쓰기
SUB 가져오기 디코드 SUB 멈추다 오퍼랜드 SUB 읽기: 이전 작업의 사용 결과 SUB 실행 결과 쓰기

경우에 따라서는 이러한 쓰기 후 읽기 데이터 위험으로부터의 모든 정지를 오퍼랜드 [3][4][5]포워딩에 의해 완전히 제거할 수 있습니다.

오퍼랜드 포워딩(확장) 포함
1 2 3 4 5 6
ADD 가져오기 디코딩 ADD 오퍼랜드 ADD 읽기 ADD 실행 결과 쓰기
SUB 가져오기 디코드 SUB 오퍼랜드 SUB 읽기: 이전 작업의 사용 결과 SUB 실행 결과 쓰기

기술적 실현

CPU 제어 유닛은 피연산자 포워딩이 적절한 의존관계를 검출하기 위해 로직을 실장해야 합니다.그런 다음 멀티플렉서를 사용하여 피연산자를 읽을 적절한 레지스터 또는 플립 플랍을 선택할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "CMSC 411 Lecture 19, Pipelining Data Forwarding". University of Maryland Baltimore County Computer Science and Electrical Engineering Department. Retrieved 2020-01-22.
  2. ^ "High performance computing, Notes of class 11". hpc.serc.iisc.ernet.in. September 2000. Archived from the original on 2013-12-27. Retrieved 2014-02-08.
  3. ^ 구르푸르 M. 프라부"컴퓨터 아키텍처 튜토리얼"섹션 "Forwarding" 및 "Data Hazard Classification".
  4. ^ 오리온 롤러 박사.파이프라인, 파이프라인 정지 및 오퍼랜드 포워딩.
  5. ^ 래리 스나이더."파이프라인 리뷰"

외부 링크