이전 단계에서 레지스터 값이 수정되지 않은 경우 MIPS 어셈블리가 정지 및 전달


1

MIPS 아키텍처로 파이프 라이닝과 스톨 및 포워드를 진행 중이며 확실하지 않은 몇 가지 사항이 있습니다.

각 집합의 처음 두 개와 같은 두 개의 인접한 명령어가 모두 동일한 레지스터를 사용하지만 첫 번째가 실제로 해당 레지스터를 수정하지 않는 경우 여전히 정지가 있습니까? add와 first addi의 두 번째 세트가 각각 modified $t0이면 $t0, 다음 명령에서 업데이트 된 값을 사용하기를 원하기 때문에 스톨을 원할 것 입니다. 그러나 여기서 다음 명령의 결과는 $t0변경되지 않으므로 실제로 영향을 미치지 않습니다. 이 경우 마구간이 없습니까? 또는 레지스터에 쓰거나 읽거나 읽지 않더라도 레지스터가 사용 중이기 때문에 중단이 있습니까?

그리고 첫 번째 세트 addi에서 추가와 두 번째 사이 의 첫 번째 addi간격이 $t1사용상 의 스톨을 필요로하지 않을만큼 충분 합니까? 아니면 거기에 도움을주기 위해 실속이 필요합니까?

add $t1, $t0, $t0
addi $t2, $t0, 1
addi $t3, $t1, 1

addi $t1, $t0, 1
addi $t2, $t0, 2
addi $t3, $t0, 3
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.