2014-10-22 5 views
0

파이프 라인 된 데이터 경로의 다음 MIPS 코드가 어떻게 실행되는지 이해하려고합니다.MIPS 파이프 라인 사이클

lw $4, 100($2) 
    sub $6, $4, $3 
    add $2, $3, $5 

MIPS 명령어 세트는 5 단계 (페치, 디코드, 실행, 메모리 액세스, 라이트 백)가 있습니다.

답은 8 사이클이지만 이유를 이해하는 데 어려움이 있습니다. 다음은 파이프 라인이 어떻게 보이는지 (불완전한 경우)입니다.

C F D E M WB 
    1 lw 
    2 sub lw  
    3 add sub lw 
    4 add sub x lw 
    5  add sub lw 
    6   add sub 
    7 
    8 

질문 : 4와 5에서 x (실속? 7과 8을 포함한 사이클을 어떻게 생각해 낼 수 있습니까?

+1

명령이 이전 명령의 결과를 필요로하기 때문에 실속이 예상됩니다. – Jester

답변

2

우리는 당신의 교과서 나 숙제의 전체 데이터 경로 정보를 가지고 있어야합니다. 다음은 몇 가지 가능성이 있습니다 : 2 사이클

  • sub 명령 노점 실행에 들어가기 전에, 그것은 sub가 쓰기 저장을 완료 할 때까지 쓰기 저장
  • add 명령 마차를 완료 lw 결과를 기다릴 필요가 있기 때문에, 그것의 다시 때문에 결과를 기다리는 중.

이러한 두 가지 가능성과 관련된 세부 사항은 특정 명령어의 결과가 나중의 종속 명령어에서 사용 가능할 때입니다. 귀하의 데이터 경로에 일종의 레지스터 바이 패스가 있습니까? Writeback의 결과가 같은주기 또는 다음주기에서 사용 가능합니까?

+0

죄송 합니다만, 질문은 "MIPS 파이프 라인 데이터 경로에서 다음 코드를 실행하는 것을 고려하십시오"라는 내용과 이전 세부 정보없이 지침이 이어집니다. Writewback을 끝내기 위해 lw가 기다리고있는 sub에 대해서 생각해 봅니다. 아직 그 부분을 완전히 이해하지는 못했지만. 나는 그 대답이 "8주기"라는 것을 알고있다. 그래서 어느 시나리오가 가장 그럴듯한가? – John