2010-11-28 10 views
2

분기 지연 슬롯으로 놀고 있었어. 스핌에서 그걸 시도 했어. 놀랍게도 들어mips 분기 지연 슬롯이 연속 분기를 통해 전파됩니까?

j some 
j a 
j b 
j c 
j d 
ori $9, $0, 13 

some: 
a: 
b: 
c: 
d: 

그것은 변경된 $ 9 (13) 그래서 제 질문이 지연 슬롯 전파 할 수 있습니다, 또는이가 스핌 일이 실제 MIPS32 프로세서에서 발생하지 않는 이유는 무엇입니까? 이것이 예상되는 행동이라면 누군가가 저에게 일어나는 일에 대해 약간의 깨달음을 줄 수 있습니까?

답변

1

면책 조항으로, 나는 진짜 MIPS 머신으로 일한 적이 없지만, 다른 분기 슬롯을 사용하면 다른 브랜치가 거의 확실하게 문제를 일으킬 것이라고 상상한다. MIPS와 같은 프로세서의 한 가지 일반적인 방법은 no-op에 분기 지연 슬롯을 사용하는 것입니다. 예를 들어 ori $0, $0, 0과 같이 아무것도 실행하지 않도록합니다.

+0

나는 내가 그런 것을 할 것이 아니라는 것을 안다. 나는 그것을하지 않을 것이다. 지연 슬롯에 대해 더 많이 이해하려고합니다. 제 말은, 브랜치 다음의 명령은 브랜치가 트리거 된 경우에도 이미 실행 준비가되어 있음을 이해합니다. 그러나 나는 약간의 명령이 실행되는 것을 알지 못한다. 또한 각 지점에 대해 1 사이클을 사용합니까? 방금 ​​내 마음에 들었던 점은 규칙이 '각 지점에 대해 다음 명령이 실행되면'다음에 그것이 전파된다는 것을 완벽하게 이해한다는 것입니다. 어쨌든 답변 해 주셔서 감사합니다. –

+0

예, 1 분기 당 1 사이클은 내가 이해할 수있는 방법입니다.하지만 무조건적으로 'some'로 점프하고 첫 번째 지연 슬롯에서 'a'로 점프하는 것을 무시하는 것은 완전히 합법적 일 것입니다. –

+0

누군가 추가 할 것이 있으면 잠시 기다려 답변으로 표시 할 것입니다. 다시 감사합니다. –

5

분기 명령을 분기 지연 슬롯에 배치하면 정의되지 않은 결과가 발생합니다.