possible()/unlikely() 매크로가 작동하는 방식을 이해했으며 분기 예측에 대해서도 알고 있습니다. 불행히도, 높은 수준의 프로그래밍의 맥락에서 분기 예측을 배우지 못했습니다.세그먼테이션 결함이있는 Linux 커널의 likely()/unlikely() 매크로
가능성있는/가능성이 낮은 매크로 내에서 평가하면 세분화 오류가 발생하며 그 결과가 분기 예측 내역 또는 현재 결과/파이프 라인에 어떤 영향을 주는지 알고 싶습니다.
예측의 유효성 검사가 완료되지 않은 경우 성공 또는 실패 여부를 어떻게 알 수 있습니까?
내가이의 시작을 생각을 발견 할 것이다 당신이 실제로 묻는 것을 방해하는 질문은 추측 적으로 실행 된 브랜치가 플러시되는 경우 브랜치 예측이 어떻게 작동하는지 알고 싶기 때문에 그렇습니까? – harold
아닙니다. 플러시할지 여부에 대한 결정은 평가에 따라 달라 지겠지만, 정확하지 않습니까? 내 질문은 평가가 완료 될 수없는 경우입니다. 이 경우 시스템의 상태는 무엇입니까? – user3224083
예, 그것이 제가 의미했던 것입니다. 전체 브랜치가 플러시 된 후에는 코드가 플러시되지 않습니다. 그것은 가능성이 높거나있을 법하지도 않으며 예외적 인 경우도 아닙니다 (예측 인자를 손상시킬 수 있습니다. 예외는 너무 많아서 BP 정확도에 영향을주지 않습니다.) 과거의 여러 가지를 추측하고 첫 번째 예측을 잘못 예측했습니다. 이를위한 몇 가지 해결책이 있습니다. – harold