버퍼 순서 변경

Re-order buffer

정렬 버퍼(ROB)는 순서가 다른 명령 실행을 위해 Tomasulo 알고리즘에서 사용된다.명령을 순서대로 커밋할 수 있습니다.

일반적으로 명령에는 "발행", "실행", "결과 쓰기"의 세 가지 단계가 있습니다.Tomasulo 알고리즘에는 "Commit"라는 추가 단계가 있습니다.이 단계에서는 지시 결과가 레지스터 또는 메모리에 저장됩니다."Write Result" 단계에서는 결과가 정렬 버퍼에 저장됩니다.이 버퍼에 있는 모든 콘텐츠는 이 명령어에 따라 다른 명령을 실행할 때 사용할 수 있습니다.

버퍼의 모든 엔트리에는 다음과 같은 추가 필드가 있습니다.

  • 명령 유형(점프, 메모리에 저장, 레지스터에 저장)
  • 수신처(메모리 주소 또는 레지스터 번호 중 하나)
  • 결과(목적지에 도달한 값 또는 (실패한) 점프의 표시)
  • 유효성(결과가 이미 존재합니까?)

순서 변경 버퍼의 또 다른 이점으로는 정확한 예외타깃주소 오예측(브랜치 또는 점프)의 롤백 제어가 용이합니다.ROB는 원래 가져온 순서대로 명령을 저장함으로써 작동합니다.예약 스테이션(Tomasulo 알고리즘)에는 ROB의 지침을 가리키는 추가 파라미터가 있기 때문에 ROB에 측면에서도 액세스할 수 있습니다.점프 예측이 올바르지 않거나 명령 스트림에서 회복 불가능한 예외가 발생하면 ROB는 모든 명령을 클리어하고 예약 스테이션을 다시 초기화합니다.

레퍼런스

외부 링크