2014-05-17 3 views
1

나는 Winmips64와 간단한 조립 프로그램을 분석하고있어 한 순간에 프로그램 분기 찍은 매점을 가지고,하지만 난 이유를 모르겠어하고 실속의 유형입니다. 나는 인터넷에서 검색 중이며 "예상치 못한 결과"와 관련이있는 것을 발견했지만 이해하지 못했습니다. 당신이 지점 촬영 스톨가 생성되는 순간 중 하나 볼 수있는 사진에서 가지가 실린 지점은 무엇입니까?

. 사전 :

enter image description here

답변

1

분기 찍은 스톨 지점이 Instruction prefetch에 대한

핵심 이유 :-) 촬영 실속이있는

감사 곳 스트림에 여러 지침 병렬로 처리됩니다. 스트림에서 해당 명령의 실행 중에 다음 (N + 1)이 이미 복호화되고, 또한 간단한 형태 pipeline picture

참조. 따라서 기계는 평균 1 클록의 명령을 실행하지만 실제로는 명령은 2 클럭 (1 클럭 디코드, 1 클럭 실행)을 필요로합니다. Netburst 아키텍처 (Pentium 4/D)는 매우 깊은 파이프 라인을 가지고있는 것으로 유명했습니다. 이 지점 (다음 이외의 다른 명령으로 이동), 대상 주소 명령이 아직 해독되지 않은 경우

(뭔가가 잘못 예측하여 무서운 형벌 경우). 따라서 먼저 디코딩되어야하므로이 명령어의 실행에는 두 클럭이 소요됩니다. 이 여분의 시계는 가지 마구간 페널티입니다.

더 현대적인 CPU는 가능한 한 빨리 guestimating possible branch targets 이러한 처벌을 최소화하기 위해 노력하고 이미 추측 감독의 지시를 프리 페치. 나뭇 가지들이 calculate the chance that a branch is taken

도 제대로 프리 페치되는 기회를 최대화하려면
관련 문제